So I saw this great blog post, Experimenting with Node.js. I decided to try and set it up on my own using the author's gist. It didn't work.
Further debugging shows me that the the websocket is connecting fine, but is closing as soon as 'send' is invoked. Here is the wireshark trace(forgive the weird spacing):
GET /test HTTP/1.1
Host: 127.0.0.1:8000
Sec-WebSocket-Key2: 3 j 92 9 62" 7 0 8 8
Upgrade: WebSocket
Connection: Upgrade
Origin: http://127.0.0.1:3000
Sec-WebSocket-Key1: 96'5% S72.93?06
......(bHTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://127.0.0.1:3000
Sec-WebSocket-Location: ws://127.0.0.1:8000/test
.4.R....mh.....{.{"action":"move","x":450,"y":22,"w":1146,"h":551}.
I've tried this in both Chrome and Firefox 4.0 beta. They both exhibit the same behavior. If I go to the original blog site, it works fine.
Another thing. If I go into the JS console in either FF or Chrome and I do the following:
ws = new WebSocket('ws://localhost:8000/test')
ws.send("foo")
It immediately disconnects and does not send the message. The server shows the connection and handshake, but never receives a message.
I've found a few questions here that were similar but were either resolved without posting the fix or did not seem to apply in this situation. I can post the code from the gist if it will make it easier.
The CloseEvent has a "code" property that will give you information about why your connection was closed.
"Returns an unsigned short containing the close code send by the server. The following values are permitted status codes."
A variety of code values are supported. Here are the most prominent:
See CloseEvent API docs on MDN for more.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With