【问题标题】:NodeJs manage socket.io clientsNodeJs 管理 socket.io 客户端
【发布时间】:2013-12-15 09:32:15
【问题描述】:

我正在寻找一种方法来处理我的 nodeJs 服务器上的 socket.io 连接。

调用一次客户端的socket.connect('server-addr'),使socket.io服务器保存,每次客户端连接时,io.sockets.clients()中的新引用。它不检查客户端是否已经在列表中。它只是将它作为一个新客户端放入列表中。

如何避免服务器在每次连接后将同一个客户端保存在新的客户端对象中?

【问题讨论】:

  • 你不能停止在你的客户端中多次调用socket.connect吗?
  • 我猜客户端会检查服务器是否可用。不知道能不能阻止
  • 客户端代码不是你自己的?
  • 不,不幸的是它不是。不过,我会尝试得到它,看看我是否可以做某事。在客户端。数据传输后,我应该断开客户端的连接吗?
  • 嗯,通常socket.io 连接在页面查看期间是永久的。但是,如果客户端在同一个页面视图期间多次连接,那么除了(如果可能的话)执行@TarekSalah 的建议并使用会话来跟踪客户端是否已经连接之外,您无能为力。

标签: node.js socket.io


【解决方案1】:

您可以使用客户端自带的 sessionID 来区分不同的客户端。 如果您不知道如何使用会话,可以点击此链接: http://www.danielbaulig.de/socket-ioexpress/。 此链接解释了如何使用 express 提取套接字中的会话 ID

【讨论】:

  • 由于 express 和 socket.io 之间的问题,我不想使用它。我尝试了该示例,但它不起作用,尽管我为 express 3 应用了更改。
猜你喜欢
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 2014-04-22
相关资源
最近更新 更多