【问题标题】:Socket.io - Emit broadcast message except my sockets idSocket.io - 发出广播消息,除了我的套接字 id
【发布时间】:2015-09-28 03:13:41
【问题描述】:

我正在使用 socket.io 实时构建应用程序

每次用户进入应用程序时都会创建一个套接字 ID。 因此,如果我在多个浏览器选项卡中加入应用程序,则会为每个选项卡生成一个套接字 ID。

我为特定用户生成一个房间并包含我的套接字 ID, 但我需要向我的套接字 id 发出广播消息。

此代码对我不起作用,因为会发出广播消息但会发送到我的其他 id 套接字

socket.broadcast.to("room").emit('message', "somethings")

有什么想法吗?

【问题讨论】:

标签: node.js socket.io


【解决方案1】:

假设您正在使用一些应用程序框架,例如 socket.io 旁边的 express,您可以使用从 Express.js 获得的有效会话 id 来映射从同一会话生成的 socketID。

除了将 socketID 映射到 sessionID 之外,我认为没有办法获取跨选项卡生成的所有 socketID,因为在当前选项卡上下文中无法访问其他选项卡上的信息。

以下是讨论同一案例的几个现有问题:

  1. manage-multiple-tabs-but-same-user-in-socket-io
  2. socket-io-and-session

【讨论】:

  • 我之前阅读了链接,并获得了与我的套接字 ID 相关联的 sessionID。我不能忽略广播消息中的这些套接字 ID。
  • 在问题中,您试图向所有人发出,但不是您的 socketid。那么您是说您无法弄清楚所有socketID与您会话下的socketID的区别吗?
  • 我是说如果不在 socketsid 的数组中创建一个循环,我就不能发出省略我的 socketsid 的消息。你明白我了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
相关资源
最近更新 更多