Как отладить сервер веб-сокетов - PullRequest
12 голосов
/ 02 июля 2010

Я пытаюсь написать сервер для подключения к webSocket. Я внимательно прочитал спецификацию (76, а не 75). Я использую минное поле в качестве браузера.

Когда я пытаюсь создать WebSocket из JavaScript в браузере:

var ws = new WebSocket("ws://localhost:8766/hoho");

Браузер отвечает

"Firefox не может установить соединение с сервером по адресу ws: // localhost: 8766 / hoho."

Мой сервер получает действительный клиентский запрос на квитирование, отправляет ответ и затем гремит.

Я запускаю каждый пример примера рукопожатия, который могу найти на своем сервере, и точно сопоставляю данные ответы в каждом случае. Я уверен, что поток возвращаемых байтов верен. Мне не нужна помощь в отладке моего кода, он делает то, что я имею в виду. Мне нужна помощь в отладке моего использования протокола рукопожатия, поскольку, когда я даю минное поле, то, по моему мнению, это правильный ответ, он смеется надо мной.

У меня такой вопрос: как мне отладить эту штуку? Я могу думать о двух возможностях.

  1. Есть ли способ заставить минное поле сказать мне, почему он отвергает мое рукопожатие?

  2. Есть ли в сети работающий, общедоступный сервис webSocket-сервера? Если есть, я могу прокси, посмотреть потоки байтов в обоих направлениях и выяснить, где у меня отличается.

У кого-нибудь есть идеи в этих направлениях или какие-либо другие идеи?

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 20 августа 2012

О 2-й возможности. Да, там есть сервер веб-сокетов. демонстрационный сервер jWebSocket на http://jwebsocket.org/demos/chat/chat.htm

надеюсь, это поможет

Добавлено: сервер сокетов Echo по адресу: http://www.websocket.org/echo.html

2 голосов
/ 26 марта 2013

Я нахожусь в процессе отладки подобной ситуации, и инструмент, на который я полагаюсь больше всего, является netcat, с некоторым дополнительным использованием openssl.Завершите работу сервера веб-сокетов и запустите nc -l 8766.Это позволяет вам записывать, какие именно заголовки отправляются.Снова включите сервер websocket и используйте nc 8766, чтобы вставить те же самые заголовки и увидеть результат.openssl s_client -connect localhost:443 позволит вам сделать запрос с помощью ssl, если он есть в вашем миксе.

Оттуда убедитесь, что ответы полностью соответствуют протоколу рукопожатия websocket.Например, моя проблема сейчас заключается в том, что мои ответы имеют Connection: close, что не хорошо.

0 голосов
/ 25 августа 2011

Вот jsfiddle, который я сделал из http://www.websocket.org эхо-сервера веб-сокетов, который работает в Chrome, но не в Firefox 6: http://jsfiddle.net/awDLc/

Он настроен на использование MozWebSocket вместо WebSocket, но, возможно, этого недостаточно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...