我有一个实时的HTML5画布游戏,它运行在一个节点后端。玩家通过Websocket(socket.io)连接。问题是有时我需要部署新代码(例如修补程序)并重新启动服务器,但我不想断开播放器。
我的想法是将websocket服务器和应用程序服务器分成可单独部署的组件,并在中间添加一个消息队列以分离这两个组件。这样,如果应用程序服务器正在重新启动,那么只会有短暂的延迟,而消息会堆积起来但不会丢失任何内容。这是一个好策略吗?还有其他选择吗?
答案 0 :(得分:3)
基于websocket的应用程序很可能在没有用户注意到任何内容的情况下重新启动(my chat server for example就是这种情况)。
为了实现这一点,解决方案不是将websocket应用程序隔离并且永远不会重新启动。事实上,这将是非常乐观的(你确定你可以确保它的API永远不会改变吗?)。
解决方案