WebSocket не подключается к socket.io - PullRequest
1 голос
/ 13 ноября 2011

Я использую Node.js с socket.io для реализации веб-сокетов на одной из моих страниц. server.js (что запускает Node.js) имеет следующий код:

var http = require("http").createServer(),
io = require("socket.io").listen(http);

http.listen(8080);

io.sockets.on("connection", function(socket) {
        socket.emit("message", {hello:"world"});
});

И вот код, с которым я пытаюсь соединиться:

var socket = new WebSocket("ws://92.60.122.235:8080/");
socket.onopen = function() {  
    alert("Socket has been opened!");  
}

Когда я загружаю страницу, ничего не происходит. Я использую Chrome, и я знаю, что веб-сокеты поддерживаются. В консоли ошибок нет ошибок, и если я наблюдаю, как socket.io обрабатывает запросы из командной строки, я не вижу подключающихся пользователей.

Насколько я знаю, это должно сработать, может кто-нибудь объяснить, что может пойти не так?

Ответы [ 2 ]

6 голосов
/ 13 ноября 2011

Вам нужен клиент socket.io для прохождения некоторых этапов аутентификации. Попробуйте это, и это должно работать (клиентский javascript обслуживается самим socket.io, не беспокойтесь об этом).

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('message', function (data) {
    console.log(data);
    socket.emit('helloworld', { msg: 'why do you so love to say hello world?' });
  });
</script>

С http://socket.io/#faq

Почему бы просто не назвать его WebSocket, если реальный WebSocket не представить и подражать его API?

Socket.IO делает больше, чем WebSocket, даже если WebSocket выбран в качестве транспорта и пользователь просматривает Ваш сайт с ультрасовременным браузером. Некоторые функции, такие как сердцебиение, тайм-ауты и поддержка отключения отключены в реальном времени приложения, но не предоставляются API WebSocket "из коробки".

Это похоже на решение jQuery о создании многофункциональных и простой $ .ajax API в отличие от нормализации XMLHttpRequest.

0 голосов
/ 19 июля 2012

Исходный код веб-страницы, который запускается в Chrome, Firefox и IE (как минимум), можно загрузить через статью блога " Демонстрация сервера Websocket " из проекта логики высокого уровня.Веб-страница создана для разработчиков.

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