我几乎用 node.js 和 socket.io 完成了一个回合制多人游戏。
我有 express.js 作为 web 服务器和另一个类作为游戏服务器,使用 socket.io。
我的问题是这两个在同一个应用程序中运行。我有一个网页登录页面,用户可以在其中登录并查看他们的玩家详细信息并在大厅中聊天。现在直到这里没有任何与游戏逻辑相关的东西。所以我问自己为什么这个游戏服务器与网络服务器在同一个应用程序中运行。另请注意,将来可能会有不同的服务器,例如(欧洲服务器、美洲服务器、亚洲服务器等),但相同的登录页面和登录机制仍然存在。
那么实现这一目标的完美方法是什么?
我应该制作两个单独的 node.js 应用程序,一个网络服务器和一个游戏服务器。但是在这种情况下,我可以在套接字和请求之间共享会话数据吗?
另一个缺点是在浏览网站时,任何意外行为都可能导致网络服务器抛出异常并关闭应用程序,从而也关闭游戏服务器。