以零停机时间升级nodejs websocket web应用程序

借助无状态的Web应用程序(例如在Unicorn上运行的Rails),可以轻松实现零宕机升级。

但是,升级具有websocket连接的nodejs web应用程序的最佳做法是什么? 那些websocket连接怎么能不中断?

将您的新代码部署到其他端口,然后将原始端口转发到此新实例。 旧的连接仍然会连接到旧的应用程序,直到他们的会话结束,所有新的连接将与​​新的实例。

如果您满意所有用户都在新的代码库上,则可以closures旧的进程。