【问题标题】:NodeJS reply to connected user by SocketIDNodeJS 通过 SocketID 回复连接的用户
【发布时间】:2015-04-25 06:50:48
【问题描述】:

在下面这个简单的代码中,我想在 nodeJs 上连接用户后尝试我可以在从 android 设备发送 pm 后回复任何消息,在此代码中如何通过套接字为连接的用户发送消息?

var io  = require('socket.io');  
var server = io.listen(4732);

var android_socket   = undefined;

server.sockets.on('connection', function(socket) {  
    socket.on('user', function(data) {

        if (data.type == "client")
            //saving socket
            android_socket = socket;
        }

    });

    socket.on("pm", function(data) {
        /* Reply message to android_socket */          
    });
});

console.log('server is connected...');

【问题讨论】:

    标签: node.js


    【解决方案1】:

    您可以简单地将事件emit 发送到接收pm 事件的同一个套接字:

    socket.on("pm", function(data) {
        /* send reply event */
        socket.emit('foo', {data: 123});
    });
    

    该套接字连接到一个 android 客户端。

    无需存储任何android_socket 引用。事实上,您的方法(存储单个套接字引用)无论如何都不会正常工作,因为可能同时打开多个 android 套接字连接。

    【讨论】:

    • 所以如果这是真的不需要保存套接字,如何在一些连接到服务器的套接字之间找到套接字ID
    • 您可能会重复这个问题:stackoverflow.com/questions/8467784/…。在其非常好的接受答案中,clientsusers 哈希存储有关套接字和用户的信息以供以后使用。
    猜你喜欢
    • 2018-03-09
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    相关资源
    最近更新 更多