首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从socket.io-redis发送私有消息(发出)

如何从socket.io-redis发送私有消息(发出)
EN

Stack Overflow用户
提问于 2017-02-16 11:06:58
回答 1查看 1.9K关注 0票数 3

我正在开发一个使用Node.js,Socket,io,Redis的实时应用程序。我试图从员工那里向一个客户端发送一条私有消息,但它不起作用。worker上的数组io.sockets.connected是空的,我不能引用客户机。

主机代码:

代码语言:javascript
复制
var io = require('socket.io')(30042); //socket.io(<port>) will create a http server
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.on('connection', function (socket) {
    io.sockets.connected[socket.id].adapter.remoteJoin(socket.id, 'new_room', function  (err) {});
});

工人守则:

代码语言:javascript
复制
var SocketIO = require('socket.io');
var redis = require('socket.io-redis');
io = new SocketIO(); //start redis socket-io
io.adapter(redis({host: 'localhost', port: 6379})); // where your redis server is located

//send to all users in room - works perfectly
io.to('new_room').emit('chat message', 'Test global msg from worker');

//????
//dont work - io.sockets.connected is empty
io.sockets.connected['socket_id_from_master'].emit('chat message', 'Test private msg from worker');

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-06-22 16:47:43

由于您的工作人员对连接的套接字一无所知,所以需要从适配器中获取它们,在本例中是Redis。

要获得连接的套接字,您需要调用: io.sockets.adapter.clients

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42272179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档