是否可以序列化 WebSocket 连接对象并在另一台服务器上重用它?
Is it possible to serialize a WebSocket connection object and reuse it on another server?
我想为我的网站设置负载平衡,因此当您请求 websocket 地址时,它会将您的连接路由到当前请求时间可用资源最多的 WebSocket 服务器。我的网站是一个聊天网站,如果全部 运行 在一台服务器上,使用 WebSockets 为其他用户更新聊天内容并不难。
假设用户 1 向 TestUser 发送消息。
User 的连接 ID 为 120,TestUser 的 ID 为 174,
现在服务器将查找与用户匹配的连接并获取 ID,然后获取连接,然后将响应发送给 TestUser。
但是,如果两个用户都在两个不同的服务器上,并且我将他们的连接以序列化形式存储在数据库中,然后将它们获取到一个变量中,我仍然可以使用该连接吗?
连接是否包含某种身份验证以作为服务器发送消息?如果不是我可以尝试什么。我不想用单个服务器替换我的负载平衡器。
谢谢!
注意:我列出了 Java 和 PHP 因为我出于自己的原因将这两种语言用于 WebSockets,因为我根据他们喜欢的语言为其他人开发,在我的情况下主要是是 Java 和 PHP
这不可能。连接是两方之间的共识,即使用某些端口和协议的通信正在发生和持续。如果不存在这种理解,则一端的操作(例如反序列化套接字对象)不会创建一个 - 需要创建一个新连接,这再次建立了这种理解。这意味着 a) 先前关闭的连接对象不再有用,并且 b) 引用现有的实时连接的连接对象在建立连接的其他服务器上没有用。
在 Serializing socket 话题上查看更多答案。
我想为我的网站设置负载平衡,因此当您请求 websocket 地址时,它会将您的连接路由到当前请求时间可用资源最多的 WebSocket 服务器。我的网站是一个聊天网站,如果全部 运行 在一台服务器上,使用 WebSockets 为其他用户更新聊天内容并不难。
假设用户 1 向 TestUser 发送消息。
User 的连接 ID 为 120,TestUser 的 ID 为 174, 现在服务器将查找与用户匹配的连接并获取 ID,然后获取连接,然后将响应发送给 TestUser。
但是,如果两个用户都在两个不同的服务器上,并且我将他们的连接以序列化形式存储在数据库中,然后将它们获取到一个变量中,我仍然可以使用该连接吗?
连接是否包含某种身份验证以作为服务器发送消息?如果不是我可以尝试什么。我不想用单个服务器替换我的负载平衡器。
谢谢!
注意:我列出了 Java 和 PHP 因为我出于自己的原因将这两种语言用于 WebSockets,因为我根据他们喜欢的语言为其他人开发,在我的情况下主要是是 Java 和 PHP
这不可能。连接是两方之间的共识,即使用某些端口和协议的通信正在发生和持续。如果不存在这种理解,则一端的操作(例如反序列化套接字对象)不会创建一个 - 需要创建一个新连接,这再次建立了这种理解。这意味着 a) 先前关闭的连接对象不再有用,并且 b) 引用现有的实时连接的连接对象在建立连接的其他服务器上没有用。
在 Serializing socket 话题上查看更多答案。