2010-06-27 4 views
1

Я создал сервер, используя Node, прослушивающий порт 8000, localhost. Убедитесь, что он работает правильно, но я не могу получить доступ к WebSocket на клиенте (Chrome 5). Пробовал несколько реализаций из различных репозиториев Git, узла + websocket, socketIO, статей и т. Д. Ничего.Node.js, проблема с размещением WebSocket?

Конфликты портов (sudo lsof -i tcp); Пробный сервер.listen (8000, "*"); Указывается на ws = new WebSocket ("ws: //: 8000/test"); Debian Lenny, Apache22 Узел v0.1.98-31-g1c6671a

Я думаю, что может возникнуть конфликт с переписыванием URL. Или возможные разрешения. Есть идеи?

ответ

0

У меня была аналогичная проблема с Ubuntu 10.04 LTS 32-bit и Chrome 5.0.375.125 и выяснилось, что это ошибка в Chrome. Вот как вы можете протестировать и решить проблему. Я использовал WebSocket с PHP и позже Node.JS:

PHP: Загрузите учебный файл с http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/ и извлеките его в папку с именем «socket» в вашем веб-корне. Эта папка теперь содержит файл readme.txt и сервер папок и клиент. Теперь запустите скрипт в консоли в соответствии с readme (для меня это команда: sudo php -q /var/www/socket/server/startDaemon.php). Он должен напечатать «Начать прослушивание на Socket». , Оставьте окно консоли открытым. Теперь перейдите в localhost/socket/client/client.php в Chrome. Он должен сказать «Socket Status 0», и если вы посмотрите в консоли, вы не увидите новых сообщений (соединение не было).

Теперь вот трюк: откройте вторую вкладку Chrome. Направьте эту вкладку на тот же URL: localhost/socket/client/client.php (Он также говорит «Состояние сокета 0»). А затем закройте его снова. Теперь ваша оригинальная вкладка должна указывать «Состояние сокета: 1 (открыть)», а на консоли вы видите рукопожатие. WebSocket теперь работает.

Я повторил тот же трюк, что и выше, но на этот раз с помощью Node.JS с Socket.IO скриптом. Пример чата, включенный в Socket.IO-узел (github.com/LearnBoost/Socket.IO-node), имел ту же проблему, что и на этапе «Подключение ...». Открытие второй вкладки в окне чата и последующее ее закрытие снова решили проблему, и окно чата продолжало загружаться должным образом. Сервер Node.JS подтвердил соединение в консоли. С тех пор WebSocket работал отлично.

Смежные вопросы