【问题标题】:Why can't I send a message from client to server using sockets.io?为什么我不能使用 sockets.io 从客户端向服务器发送消息?
【发布时间】:2016-04-26 06:56:08
【问题描述】:

这是我的客户端函数:

var socket = io();
socket.on('connection', function(data) {
io.socket.emit('clientMessage', 'client message');
})

这是我的服务器代码:

io.on('connection', function (socket) {
            socket.on('clientMessage', function (msg) {
                console.log(msg);
            });
        });

但这似乎被打破了,因为没有任何东西被发送到服务器。我该如何解决?非常感谢。

【问题讨论】:

  • @RolandStarke 所以我不能发送到服务器?
  • @apsillers 谢谢 socket.emit 工作得很好
  • @apsillers - 如果您不想在客户端上发生connect 事件,您的socket.emit() 在某些情况下可能会丢失。您可以查看我的回答,了解等待连接发生的正确方法。
  • 如果@jfriend00 下面的回答解决了您的问题,您应该点击复选标记将您的问题标记为已解决。 (如果您过去的一些问题得到解决,您可能也希望这样做。)

标签: node.js sockets socket.io


【解决方案1】:

客户端函数应该是这样的:

var socket = io();
socket.on('connect', function() {
    socket.emit('clientMessage', 'client message');
});

客户端有两个单独的问题:

  1. 在客户端,事件是connect,而不是connection
  2. 你应该使用socket.emit(),而不是io.socket.emit()

【讨论】:

  • @predator44 - 这回答了你的问题吗?
  • 我以为我选择了它,我的错。谢谢你的帮助
猜你喜欢
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
相关资源
最近更新 更多