首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向Socket.IO 1.0中的特定ID发送消息

向Socket.IO 1.0中的特定ID发送消息
EN

Stack Overflow用户
提问于 2014-06-04 23:12:50
回答 5查看 88.6K关注 0票数 88

我想要将数据发送到一个特定的套接字ID。

在旧版本中,我们曾经能够做到这一点:

代码语言:javascript
复制
io.sockets.socket(socketid).emit('message', 'for your eyes only');

我该如何在Socket.IO 1.0中做类似的事情呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-06-15 04:45:57

在socket.io 1.0中,它们为此提供了更好的方法。每个socket通过自己的id自动加入一个默认房间。检查文档:http://socket.io/docs/rooms-and-namespaces/#default-room

因此,您可以使用以下代码通过id将其发送到套接字:

代码语言:javascript
复制
io.to(socketid).emit('message', 'for your eyes only');
票数 210
EN

Stack Overflow用户

发布于 2015-04-01 21:55:01

如果你使用了一个命名空间,我发现下面的方法是可行的:

代码语言:javascript
复制
//Defining the namespace <br>
var nsp = io.of('/my-namespace');

//targeting the message to socket id <br>
nsp.to(socket id of the intended recipient).emit('private message', 'hello');

有关名称空间的更多信息:http://socket.io/docs/rooms-and-namespaces/

票数 6
EN

Stack Overflow用户

发布于 2016-10-19 03:23:52

我相信@好奇心和@MustafaDokumacı都提供了运行良好的解决方案。不同之处在于,在@MustafaDokumacı的解决方案中,消息被广播到一个房间,而不仅仅是特定的客户。

当请求确认时,差异会很明显。

代码语言:javascript
复制
io.sockets.connected[socketid].emit('message', 'for your eyes only', function(data) {...});

按预期工作,而

代码语言:javascript
复制
io.to(socketid).emit('message', 'for your eyes only', function(data) {...});

失败,错误为

代码语言:javascript
复制
Error: Callbacks are not supported when broadcasting
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24041220

复制
相关文章

相似问题

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