gpt4 book ai didi

java - 是否可以序列化 WebSocket 连接对象并在另一台服务器上重用它?

转载 作者:行者123 更新时间:2023-12-03 20:22:52 30 4
gpt4 key购买 nike

我想为我的网站设置负载平衡,因此当您请求 websocket 地址时,它会将您的连接路由到当前请求时间可用资源最多的 WebSocket 服务器。我的网站是一个聊天网站,如果它全部在一台服务器上运行,则使用 WebSockets 为其他用户更新聊天内容并不是很难。

假设用户 1 向 TestUser 发送消息。

User 的连接 ID 为 120,TestUser 的 ID 为 174,现在服务器将查找与用户匹配的连接并获取 ID,然后获取连接,然后将响应发送给 TestUser。

但是,如果两个用户都在两个不同的服务器上,并且我将他们的连接以序列化形式存储在数据库中,然后将它们获取到一个变量,我仍然可以使用该连接吗?

连接是否包含某种身份验证以作为服务器发送消息?如果不是我可以尝试什么。我不想用单个服务器替换我的负载均衡器。

谢谢!

注意:我列出了 Java 和 PHP,因为我出于自己的原因将这两种语言用于 WebSockets,因为我根据他们喜欢的语言为其他人开发,在我的例子中主要是 Java 和 PHP

最佳答案

这是不可能的。连接是两方之间的共识,即使用某些端口和协议(protocol)的通信正在发生和持续。如果不存在这种理解,则一端的操作(例如反序列化套接字对象)不会创建一个 - 需要创建一个新连接,这再次建立了这种理解。这意味着 a) 先前关闭的连接对象不再有用,并且 b) 引用现有的实时连接的连接对象在建立连接的其他服务器上没有用。

Serializing socket 上查看更多答案线程。

关于java - 是否可以序列化 WebSocket 连接对象并在另一台服务器上重用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67731322/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com