为什么我没有看到socket.io-client对node.js的响应?

时间:2014-01-06 12:18:19

标签: javascript node.js websocket socket.io

var io = require('socket.io-client'),
    socket = io.connect('targeturl', {
        port: 8080
    });
socket.on('connect', function () {
    console.log("socket connected"); //this is printed.
    });
socket.emit('list', {"user":'username',"token": 'mytoken'});
socket.on('message', function(data){
    console.log(data);
});

socket.on('error', function(data){
    console.log(data); //nothing is printed
});

在命令行上从node.js运行时,我看到消息'socket connected',但我没有看到'list'调用的响应。

请注意,这是一个关于将Node.js中的socket-io-client用作命令行应用程序的具体问题。

我已经使用curl验证我可以访问REMOTE的套接字服务器,即我没有服务器代码,但我知道它使用的是socket.io。

1 个答案:

答案 0 :(得分:0)

我不是这方面的专家,但看起来你正试图在建立连接之前发出消息。 (毕竟这个东西是异步的。)

尝试在'connect'事件的处理程序内移动emit调用,以确保它在之后发生。