在Go中使用活动WebSocket连接正常重启服务器

在Go中使用活动WebSocket连接正常重启服务器,go,Go,我在Facebook上看到了这个图书馆: 还有一些像这样的: 让我优雅地重新启动Go服务器,这样我就没有停机时间,这样我就可以完成正在进行的请求,防止数据被破坏等等 但我想知道,如果我在进行此操作时有活动的WebSocket连接,这将如何工作?由于存在活动的WebSocket连接,旧服务器是否永远不会停止运行?我不太关心WebSocket连接,我只关心在关闭旧服务器并启动新的更新编译文件(该文件将服务于新逻辑)之前所服务的正常请求 WebSocket将如何运行?编写应用程序以处理重新连接。服

我在Facebook上看到了这个图书馆:

还有一些像这样的:

让我优雅地重新启动Go服务器,这样我就没有停机时间,这样我就可以完成正在进行的请求,防止数据被破坏等等

但我想知道,如果我在进行此操作时有活动的WebSocket连接,这将如何工作?由于存在活动的WebSocket连接,旧服务器是否永远不会停止运行?我不太关心WebSocket连接,我只关心在关闭旧服务器并启动新的更新编译文件(该文件将服务于新逻辑)之前所服务的正常请求


WebSocket将如何运行?

编写应用程序以处理重新连接。服务器重启只是连接可能中断的一个原因

要使用WebSocket(或任何类型的长期连接)重新启动服务器,请启动新服务器,停止侦听旧服务器上的连接,并通过关闭连接来耗尽旧服务器上的连接。如果编写应用程序是为了处理重新连接,则用户不应看到服务器重新启动

这有助于排出连接,而不是一下子将它们全部关闭。这避免了您自己的客户端在重新连接、验证、查询数据库以查找消息积压等过程中的拒绝服务攻击