如果客户端更改了IP,WebSockets应用程序如何继续向客户端发送数据?

如果客户端更改了IP,WebSockets应用程序如何继续向客户端发送数据?,websocket,message,instant-messaging,Websocket,Message,Instant Messaging,我一直在使用几个应用程序,包括StackExchange聊天() 假设我打开并开始聊天,在几条信息之后,我更改了我的计算机的IP,但在那之后,我仍然能够接收信息 服务器如何知道某个特定的客户端已连接到它并发送了消息?我的猜测是,客户端检测到websocket已死亡,并重新创建它。这将再次经历整个创建过程,因此它是否因为IP更改或其他事件(如暂时失去连接)而死亡并不重要 当服务器检测到websocket已死亡时,它会简单地将其删除。客户负责所有的工作 服务器只知道它有许多属于特定用户的WebSoc

我一直在使用几个应用程序,包括StackExchange聊天()

假设我打开并开始聊天,在几条信息之后,我更改了我的计算机的IP,但在那之后,我仍然能够接收信息


服务器如何知道某个特定的客户端已连接到它并发送了消息?

我的猜测是,客户端检测到websocket已死亡,并重新创建它。这将再次经历整个创建过程,因此它是否因为IP更改或其他事件(如暂时失去连接)而死亡并不重要

当服务器检测到websocket已死亡时,它会简单地将其删除。客户负责所有的工作


服务器只知道它有许多属于特定用户的WebSocket,并将发送给所有用户,因此,
WebSocket
没有内置自动重新连接逻辑。这种逻辑必须建立在WebSocket之上。构建在WebSocket之上的socket.io库可以为您实现自动重新连接。它还使用常规心跳消息更好地检测现有连接何时不起作用。如果打开堆栈溢出聊天会话并在调试器中查看它,您可以看到新消息到达webSocket连接。因此,当您的IP地址发生变化时,webSocket连接可能会中断,聊天页面中的客户端代码会意识到这一点,并从您的新IP重新建立连接。是的,就像任何其他类型的基于IP的协议一样。连接端点由IP标识。如果IP发生更改,则连接中断,必须重新创建