0

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

我使用动态命名空间。我在 GKE 上只使用 1 个 POD。当我从 1 个 pod 扩展到 0 个 pod,然后再扩展到 1 个 pod 时,反复进行,有时 socket.io 工作,有时它不起作用。当它不起作用时,这是我观察到的非常奇怪的行为:

  • 在服务器端未触发连接事件时,尽管套接字已连接,但事件。我知道套接字已经连接,因为我打印了所有这些。

我怀疑 Redis 适配器?有人见过这个吗?

谢谢!

4

1 回答 1

1

将此答案发布为社区 wiki,以突出显示问题已解决的事实。

随意编辑和扩展。


正如评论中所发布的:

谢谢,我找到了问题。这是因为动态命名空间。问题是,当您使用 时io.of(nsp),如果尚未创建 nsp,它将undefine在连接处理程序上创建。因此,未设置连接处理程序上的动态命名空间。


其他资源:

于 2021-05-23T21:00:43.850 回答