проблема websocket: не удается подключиться к серверу node.js - PullRequest
7 голосов
/ 09 июля 2011

У меня есть сервер node.js, работающий с Express, и я пытаюсь установить соединение через websocket, используя серверную сторону socket.io и клиентскую часть chrome 12. Когда я пытаюсь подключиться, socket.io выводит сообщение об отладке, говорящее «уничтожение обновления non-socket.io», и код в моем обработчике подключения не запускается. Также на стороне клиента готовое состояние моего сокета равно 2 (ЗАКРЫТО).

[править] readyState сокета изменен с 0 на 2

1 Ответ

1 голос
/ 08 октября 2011

Убедитесь, что вы вставляете файл socket.io.js в код своего клиента и используете его. Если вы попытаетесь создать свой собственный веб-сокет на стороне клиента, вы, вероятно, столкнетесь с проблемами.

Сделайте что-нибудь подобное для своего сервера:

var app = require('express').createServer()
  , io = require('socket.io').listen(app);

app.listen(80);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

и что-то подобное для файла HTML, который вы обслуживаете:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

Убедитесь, что вы обслуживаете /socket.io/socket.io.js из каталога вашего веб-сервера. Тогда все, что вам нужно сделать, это посмотреть журнал консоли в среде разработчика веб-браузера из меню «Параметры» или с помощью Firebug при переходе на страницу.

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