Итак, я увидел этот отличный пост в блоге, Экспериментируя с Node.js . Я решил попробовать и установить его самостоятельно, используя gist автора. Это не сработало.
Дальнейшая отладка показывает, что веб-сокет подключается нормально, но закрывается, как только вызывается «send». Вот след проволочной акулы (простите за странный интервал):
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}.
Я пробовал это как в Chrome, так и в Firefox 4.0 beta. Они оба демонстрируют одинаковое поведение. Если я захожу на оригинальный блог , он работает нормально.
Другое дело. Если я захожу в консоль JS в FF или Chrome и выполняю следующие действия:
ws = new WebSocket('ws://localhost:8000/test')
ws.send("foo")
Он немедленно отключается и не отправляет сообщение. Сервер показывает соединение и рукопожатие, но никогда не получает сообщение.
Я нашел здесь несколько вопросов, которые были похожи, но были решены без публикации исправления или, по-видимому, не применимы в этой ситуации. Я могу выложить код из gist , если это облегчит задачу.