Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 套接字io已连接,但服务器端未发生连接事件(GKE)_Node.js_Socket.io_Google Kubernetes Engine_Socket.io Redis - Fatal编程技术网

Node.js 套接字io已连接,但服务器端未发生连接事件(GKE)

Node.js 套接字io已连接,但服务器端未发生连接事件(GKE),node.js,socket.io,google-kubernetes-engine,socket.io-redis,Node.js,Socket.io,Google Kubernetes Engine,Socket.io Redis,我在GKE中部署了一个基于Socket.io的应用程序。我已经使用Redis适配器来处理多个吊舱。已在入口设置中设置Cookie关联 我使用动态名称空间。我只在GKE上使用1个吊舱。当我从1个pod缩放到0个pod,然后再缩放到1个pod时,重复执行,有时socket.io工作,有时不工作。当它不起作用时,以下是我观察到的非常奇怪的行为: 服务器端的On connection事件未激发,事件已通过套接字连接。我知道插座已经连接了,因为我打印了所有的插座 我怀疑Redis适配器?有人见过这个吗

我在GKE中部署了一个基于Socket.io的应用程序。我已经使用Redis适配器来处理多个吊舱。已在入口设置中设置Cookie关联

我使用动态名称空间。我只在GKE上使用1个吊舱。当我从1个pod缩放到0个pod,然后再缩放到1个pod时,重复执行,有时socket.io工作,有时不工作。当它不起作用时,以下是我观察到的非常奇怪的行为:

  • 服务器端的On connection事件未激发,事件已通过套接字连接。我知道插座已经连接了,因为我打印了所有的插座
我怀疑Redis适配器?有人见过这个吗


谢谢

将此答案发布为社区wiki,以强调问题已解决的事实

请随意编辑和扩展


如评论中所述:

谢谢,我找到问题了。这是因为动态名称空间。问题是,当您使用(nsp)的io时,如果尚未创建nsp,则将使用连接处理程序上的
取消定义
来创建nsp。因此,未设置连接处理程序上的动态命名空间


额外资源:


您好,请添加您的问题的副本以便复制?另外,您能告诉我您所说的:
socket.io
有时有效,有时无效吗?谢谢,我发现了这个问题。这是因为动态名称空间。问题是,当您使用(nsp)的io时,如果尚未创建nsp,则将在连接处理程序上使用
取消定义
创建nsp。因此,我们的连接处理程序上的动态namspace没有设置。我很高兴您找到了解决问题的方法。由于你是它的创建者,请考虑创建一个答案,解释为更好的社区知名度,并指出你已经设法解决它。