Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Socket.IO+;快速:获取与快速会话关联的套接字_Node.js_Sockets_Express - Fatal编程技术网

Node.js Socket.IO+;快速:获取与快速会话关联的套接字

Node.js Socket.IO+;快速:获取与快速会话关联的套接字,node.js,sockets,express,Node.js,Sockets,Express,我希望从ExpressHTTP路由处理程序引发应用程序范围的事件。 e、 g用户修改记录,并向任何其他感兴趣的用户发出事件 在某些情况下,我希望向所有客户机广播,但发出(http)请求的客户机除外。 这可以通过对您希望排除的套接字进行广播来实现,但是我当前无法访问与验证http请求的会话相关联的套接字 我已经了解了如何从套接字请求中检索用户的express会话(即从cookie获取会话ID,从sessionStore检索会话) 是否可以反向工作,或者针对会话存储socketId以供以后检索?有人

我希望从ExpressHTTP路由处理程序引发应用程序范围的事件。 e、 g用户修改记录,并向任何其他感兴趣的用户发出事件

在某些情况下,我希望向所有客户机广播,但发出(http)请求的客户机除外。 这可以通过对您希望排除的套接字进行广播来实现,但是我当前无法访问与验证http请求的会话相关联的套接字

我已经了解了如何从套接字请求中检索用户的express会话(即从cookie获取会话ID,从sessionStore检索会话)

是否可以反向工作,或者针对会话存储socketId以供以后检索?有人能识别出这种方法的任何即时警告或缺陷吗

如果套接字通过redis商店分布在服务器上,也会有影响吗? 我可以预见这样一种情况,即每个用户的http请求都会进入到不同的节点来接受套接字请求


非常感谢

我也想知道这个,谢谢你的询问!所以你想用一个自定义的
socketID
创建一个socekt,对吗?我不确定这是否可行。@Pio否。我想将
socketID
保存到会话中,然后稍后通过该
socketID
检索套接字。然后将其添加为会话变量/在服务器端创建哈希映射。但请注意,每当客户端和服务器之间的套接字连接被中断/重新建立时,就会重新生成
socketID
。我有一个类似的情况,所以我保留了一个 Session ID:SokKeTid < /Case> map和on >代码> Connect (在服务器端),我更新了我的Map /Delphi,你可以删除<代码> Session ID 或者只是将<代码> SoCKETId < /C> > <代码> null 。@ PIO,当你考虑扩展到多个节点时,缺点就出现了。您需要在所有实例中共享该hashmap,这可以通过Redis实现。但我不确定是否有可能从一个节点获得一个连接到另一个节点的套接字,以便从另一个节点进行广播(仅在这实际上是一个被排除的套接字的意义上进行广播)?