【问题标题】:Long polling server principle (client identification)长轮询服务器原理(客户端识别)
【发布时间】:2011-05-14 01:57:20
【问题描述】:

我想在 node.js 中创建一个简单的长轮询服务器,其中通信将基于 jsonp 请求。我知道客户端发出请求,服务器保持响应,直到一些数据准备好或达到某个超时,然后客户端发出新请求以保持事情的进行。发出第一个请求后,会生成并存储会话 ID,以保留活动连接的客户端列表。现在,在从服务器到客户端的第一次响应之后,我如何识别任何其他请求属于我的活动连接列表中的哪个客户端?

我可以想象这样做:服务器的第一个响应将分配的会话 ID 发送给客户端,然后在发出下一个请求时根据此 ID 识别他。但我认为这种方法很容易被利用并且容易被盗用。

【问题讨论】:

    标签: javascript jquery node.js jsonp


    【解决方案1】:

    我会使用cookie

    如果我担心 ID 被盗,对我来说下一步是使用 SSL。

    【讨论】:

      【解决方案2】:

      我建议您不要自己编写所有代码,而是使用一个可行且经过测试的解决方案:
      https://github.com/LearnBoost/Socket.IO-node
      https://github.com/LearnBoost/Socket.IO

      Socket.IO 会为您处理所有连接内容,它会自动选择最佳的连接方法,例如 WebSockets,并在它们不可用时优雅地回退。

      【讨论】:

      • 我知道 Socket.IO,但这只是我的兴趣爱好,如果你明白我的意思的话 :)。
      • 那么让我说 JSONP 是最糟糕的选择,它是最不安全的消息传递方式,因为它直接执行 JavaScript(包括其中的任何函数)。
      • 问题出在同源策略中,而 JSONP 是(据我所知)适用于所有浏览器的唯一方法。甚至谷歌也将它用于各种东西(例如googlecode.blogspot.com/2010/11/…)。
      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2013-11-13
      • 2013-04-08
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多