Как правильно отключить socket.io / websocket-client?

Я пытаюсь создать тест, используя LearnBoost's socket.io и node-websocket-client. Связь между клиентом и сервером работает отлично. После завершения обмена данными я закрываю и клиент, и сервер. Однако программа зависает, ожидая какого-то неизвестного обратного вызова. Два вопроса:

  1. Чего ждет следующая программа?
  2. Есть ли инструмент для диагностики невыполненных обратных вызовов в узловых программах?

var connect = require('connect'),
    io = require('socket.io'),
    WebSocket = require('websocket-client').WebSocket;

var port = 7111;

var server = connect.createServer();

var socket = io.listen(server); 
socket.on('connection', function(client) {
  client.send('Welcome!');

  client.on('message', function(message) {
    console.log(message);
  });

  client.on('disconnect', function() {
    console.log('closing');
    server.close();
  });
});

server.listen(port, function() {
  var ws = new WebSocket('ws://localhost:' + port + '/socket.io/websocket');
  ws.onmessage = function(message) {
    console.log(message.data);
  };

  setTimeout(function() {
    ws.send('~m~3~m~Yo!');
    ws.close();
  }, 10);
});

EDIT: изменил имя переменной WebSocket на ws, чтобы избежать путаницы

11
задан Chris 11 May 2011 в 18:03
поделиться