从ExpressJS请求中识别websocket

时间:2015-11-26 22:44:40

标签: node.js express socket.io

如何使用Express POST请求作为socket.io广播的基础(而不是套接字消息)?

list_subseq([], []).
list_subseq([E|Es], [E|Xs]) :- list_subseq(Es, Xs).
list_subseq([_|Es],    Xs ) :- list_subseq(Es, Xs).

1 个答案:

答案 0 :(得分:0)

很简单。

每次与服务器建立连接时,socket对象都将具有与此连接关联的ID。将它保存在客户端的某个变量中。

然后每次向服务器发送请求时添加socket id来查询参数。在服务器端收到POST请求后,将消息广播给所有用户,并将套接字ID广播到消息。在客户端通过添加逻辑来修改message事件,如果客户端的套接字ID等于作为消息中的额外参数接收的套接字ID,则跳过/隐藏接收的消息。

<强>陷阱

  1. 如果由于某种原因在POST请求客户端断开连接并重新连接到服务器之后可能无法工作 - 在这种情况下,收到消息后客户端将具有与发送POST请求之前不同的新套接字ID。在这种情况下,您将不得不提出一些更多与连接无关的客户端ID方案来识别客户端并使用它而不是socket.id作为标识符。您可以尝试使用会话。

  2. 即使无法显示,客户仍会收到消息。

  3. 组合客户端 - 服务器&#34;互通&#34;不好方法,彼此使用,反之亦然。