【问题标题】:socket.io doesn't persist connectionssocket.io 不保持连接
【发布时间】:2020-12-18 12:59:30
【问题描述】:

我的应用模块中有以下代码。

var socket_io = require( 'socket.io' );
const io = socket_io();
io.on( "connection", function( socket ) {   
    console.log(io.sockets.connected[socket.id]); 
}

这会返回一个套接字。

我的应用模块中的以下函数返回未定义:

var emit_to_socket = function (id) {
    console.log(io.sockets.connected[id]);
}

当我使用 io.emit() 时,客户端会收到消息;但是消息会广播给所有客户端:

 var emit_to_socket = function (id) {
    io.emit('message');
 }

我需要知道如何将消息发送到特定的套接字。

【问题讨论】:

  • 你没有告诉我们你是怎么称呼emit_to_socket(id)的。您应该使用io.to(id),只要id 值有效且最新,它就会起作用。因此,我们必须了解您从何处获取该 ID 以及如何使用它。

标签: node.js socket.io


【解决方案1】:

你可以使用

socket.to(<desired_socket_id>).emit('message')

以下是文档中的示例:https://socket.io/docs/server-api/#socket-to-room

io.on('connection', (socket) => {
  socket.on('say to someone', (id, msg) => {
    // send a private message to the socket with the given id
    socket.to(id).emit('my message', msg);
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多