«Ошибка: напишите EPIPE» с Socket.io на node.js - PullRequest
1 голос
/ 07 января 2012

Я вручную применил этот патч, и теперь все работает.Ожидание в восходящем потоке, чтобы исправить это https://github.com/LearnBoost/socket.io-client/pull/361/files


Я просто пытаюсь следовать приведенным примерам и пытаюсь заставить это работать.

Mockserver.js:

var io = require('socket.io').listen(8000);

io.sockets.on('connection', function(client) {
    console.log('+ new client');
    client.on('disconnect', function() {
        console.log('- lost a client');
    });
});

Mockclient.js:

var io = require('socket.io-client');
var socket = new io.connect('localhost', { port: 8000 });

socket.on('connect', function() {
    console.log('connected');
});

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

Затем я запускаю эти пары с узлом Mockserver.js и узлом Mockclient.js на другом терминале

   info  - socket.io started
   debug - client authorized
   info  - handshake authorized 14797776461130411158
   debug - setting request GET /socket.io/1/websocket/14797776461130411158
   debug - set heartbeat interval for client 14797776461130411158
   debug - client authorized for 
   debug - websocket writing 1::
+ new client
   debug - set close timeout for client 14797776461130411158
   ***************************** error occurs here ****************
   info  - socket error Error: write EPIPE
   at errnoException (net.js:632:11)
   at Object.afterWrite [as oncomplete] (net.js:470:18)
   ****************************************************************
   debug - setting request GET /socket.io/1/xhr-polling/14797776461130411158?t=1325912082073
   debug - setting poll timeout
   debug - discarding transport
   debug - cleared close timeout for client 14797776461130411158
   debug - cleared heartbeat interval for client 14797776461130411158
   debug - clearing poll timeout
   info  - transport end
   debug- set close timeout for client 14797776461130411158
   debug - cleared close timeout for client 14797776461130411158

на этомточка, которую я остановил Mockclient.js

- lost a client
   debug - discarding transport

Единственный выход для "узла Mockclient.js" - это

The "sys" module is now called "util". It should have a similar interface.

Что вызывает исключение сокета?Я, наверное, упускаю что-то довольно очевидное.Кроме того, может кто-нибудь еще попробовать мой код, чтобы увидеть, есть ли ошибки на их компьютере?Код внутри socket.on ('connect' ... тоже не срабатывает. Я точно не знаю почему.

1 Ответ

3 голосов
/ 07 января 2012
...