Testing Spinneret Web Server outside of my home network
Beau Schwabe
Posts: 6,566
Anyone care to test this Spinneret Web Server? ...See it with Web-cam feedback
http://24.253.241.231:5555/
... works internally within the home network, but I wanted to make sure it could be seen on the Web as well.
Thanks!
Code available here:
Spinneret Web Server Demo v1.0
Spinneret Web Server Demo v1.1 <- Simple JavaScript Test (Implementing a Counter)
Spinneret Web Server Demo v1.2<- Simple JavaScript Test (Implementing Graphics)
http://24.253.241.231:5555/
... works internally within the home network, but I wanted to make sure it could be seen on the Web as well.
Thanks!
Code available here:
Spinneret Web Server Demo v1.0
Spinneret Web Server Demo v1.1 <- Simple JavaScript Test (Implementing a Counter)
Spinneret Web Server Demo v1.2<- Simple JavaScript Test (Implementing Graphics)
Comments
You are visitor number: 0024
Looks okay on Safari Version 5.0.3.
John Abshier
I removed the :5555 requirement I previously had...
http://24.253.241.231/
had to add 5555 requirement back
http://24.253.241.231:5555/
http://24.253.241.231:5555/
...should be back up. I was hoping to eliminate the extension.
My ISP, Cox, blocks the standard HTTP port 80. I image your ISP does the same thing. You can get around the port address in the URL by using a proxy(s). On the back end you're still using port 5555 though.
The same thing goes for client access. You'll need to setup the spinneret on a port other than 80 to hit an external site and see the response. Again you could use a proxy.
Happy New Year everyone!
Cool, you added the HTTP request.
Thanks! ... also have a "Bare Bones" version running that does not use the micro SD card. I'll post something later as far as how I setup the router... <- I am kinda green though, I'm not sure how to properly setup a proxy as you suggest.
The arrangement that I currently have is a Cable/Modem that obtains a DHCP (24.253.241.231)
The Cable modem is then connected to a wireless router (Netgear 54 Mbps Wireless Router WGR614v4) with access to 4 direct ports.
The Spinneret is assigned to a local static IP address of 192.168.0.45 with port forwarding directed to 5555 (<-- This could be 'almost' any number between 1 and 65534)
http://spinneret.servebeer.com:5000/index.htm
A simple proxy would be to use the parallax domain like
When a users hit the Parallax domain above the request is forwarded to your spinneret URL. This can be done through code or your web server. The user never sees the port appended to the URL. However, you still need the port address on the back end because ISPs generally block port 80 traffic. The same kind of thing goes for requesting data as a client. The Spinneret requests a resource but it though a computer on your local network.
right, but this is comming from my house, not the parallax domain ... I get a new dynamic DHCP assigned every time I reboot the cable modem, or when my provider decides to do maintenance at 1:00am.
You can look to a free service like no-ip to monitor the dynamic IP address assigned by your ISP. That's what I'm doing with the address http://spinneret.servebeer.com:5000/index.htm
It was working for me a bit earlier but it stopped. (While it was working, it looked really good ) Now, it looks like my browser (Chrome) times out on the request.
Quick question, is your serving code based on the example web server code for the Spinneret? I.E. Does it only check that the first byte in the request is a "G" and then serve the page if it is? I set up a test Spinneret on my home network and was having what appears to be similar issues. I was just using the example program "Brilldea W5100 Web Page Demo indirect Ver 001". I havent gotten the chance to check it out with WireShark yet, but when the problem showed up, the browser said that an empty response was received from the web server. Have you figured out how to get around that problem?
Yes, I am playing around with a few things and I temporarily crashed it.
It may be off and on for a little bit as I clean it up and test it out further.
"Brilldea W5100 Web Page Demo indirect Ver 001" <-- Not sure in answer to your question... I'm using the latest version that I could find version 006
I got started on this over the break... well, towards the end of the break through a robotics club that we have that meets up on Saturday evenings (and sometimes other nights during the week) ... anyway one of the guys there says "here, make this work!" ... that was on the 29th
So I basically took what was already out there and distilled it into something that we could easily work with.
If you setup the HTML code correctly the amount of parsing that is required is very little. For example...
using a <FORM> header the 'ACTION' argument can be used as a unique search, and is always (<--at least for the Spinneret) at the beginning of the packet. Additionally, the 'NAME' argument is the actual value you want to pass from the Web browser into the Spinner and ultimately into SPIN code.
Example:
... in this case what follows the 'ACTION' argument is 'button_action' but this could be anything you wanted.
...What follows the 'NAME' argument is what is sent, following the button press.
The resulting data packet looks something like this ...
...Where if you look for 'GET /button_action' you are certain that a button was pressed... reading the string further would reveal which button was pressed, and since this information always occurs at the beginning of the data packet, it's easy to determine the correct position to read the data.
Not until you mentioned it am I seeing something similar. There appears to occasionally be a 'lockup' that requires a Spinneret reboot on this end .... perhaps only checking that the first byte in the request is a "G" as you had mentioned, but I am not sure.
I can 'see' the red and blue lights on the Spinneret flash when it is in this condition, consistently when I hit refresh from the browser, but the browser appears to be locked. This to me says that the data request is making it's way to the Spinneret, but the software running is waiting for something else to happen.
Should there be a timeout implemented if the received 'Data Packet' is greater than Zero and isn't cleared upon receiving after a certain amount of time? I don't know
With this demo, you need to point to two URL's ... I just set mine up with a split screen. See attached
URL #1 - Web Cam pointing at the Spinneret
URL #2 - Spinneret Web Server
... Ok, right now you just get some visual feedback lighting some LED's. Ultimately, the idea would be to drive a robot around via a web browser. The camera that I'm using is a 2.4GHz wireless camera, combined with an Xbee that was connected to a 'fixed' Spinneret you would have the freedom to drive about.
Note: The connections to the Web-Cam are limited to a maximum of 10 users
-Phil
This is so COOL!
It's really an inspiration - the idea I can run things via the internet and see them, too.
I can't wait until all you smart people have all of this up and running, smooth as silk, so I can glide in and effortlessly get it working, too. I'm looking forward to standing on the shoulders of you giants, you know.
I'm going to turn in tonight, but I'll leave this running ... hopefully it will stay up. I'm running a test version on the Spinneret that checks for a valid status and performs a 'correction' routine if it becomes out of sync. So if someone wants to 'kick' the Spinneret-Web-Server they can but I won't be around to re-set it if it goes down.
Just might make me want to join the contest. Thanks alot, now I need to find 200 free hours for R&D,
50-100 more for programming and debugging. Ugh, I think I'll go back to bed.
Jim