【问题标题】:Why don't I see a response from socket.io-client with node.js?为什么我没有看到来自 socket.io-client 的 node.js 响应?
【发布时间】:2014-01-06 12:18:18
【问题描述】:
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 运行此消息时,我看到消息“套接字已连接”,但没有看到来自“列表”调用的响应。

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

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

【问题讨论】:

  • 请也添加您的服务器代码
  • 服务器是远程的,我没有服务器代码
  • 你期待什么输出?
  • 一些 json 输出为一系列帧。我不确定 socket.io-client 是否负责初始握手并且文档没有太大帮助。
  • 不提供(或访问)任何服务器代码,似乎问题就在那里

标签: javascript node.js websocket socket.io


【解决方案1】:

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

尝试将 emit 调用移动到“连接”事件的处理程序内部,以确保它在之后发生。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2020-06-13
    • 2012-11-06
    相关资源
    最近更新 更多