微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

让客户端远程启动node js游戏服务器,每种方法的优缺点

如何解决让客户端远程启动node js游戏服务器,每种方法的优缺点

我最近开发了一个小型浏览器游戏。它是用 js 编写的,并连接到远程服务器,该服务器运行节点 js 服务器以通过 websocket 控制某些游戏方面(通过 apache 路由到本地节点服务器/websocket,端口 8081)。我的问题是如何管理远程节点进程。

我显然可以通过 ssh 连接到服务器并运行“node gameserver.js”,它会为客户端连接运行,但这不是一个好的解决方案。

为了便于论证,我们假设所有客户端都连接到一个节点游戏服务器,并且流量很少,因此 90% 的时间都没有人在玩。

我目前的hacky解决方案是当客户端加入时,运行一些PHP来检查服务器是否正在运行:

  $host = '127.0.0.1'; 
     $port = 8081; 
     $waitTimeoutInSeconds = 1; 
     if($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){   
        //server = Online
     } else {
        //server = Offline
      exec("node gameserver.js");
     }

这确实有效,虽然它在服务器离线时确实需要刷新页面,但是运行 exec 给了我heeby jeebys,我知道它的服务器端,但我不喜欢它。

我的问题基本上是我对此有哪些选择。像这样的游戏服务器通常是 24/7 全天候运行吗? apache 可以检测到有人加入游戏并发出信号吗?是否有任何其他进程管理器可以检测到 websocket 加入进来? 24/7 全天候运行的 websocket 是否存在任何安全隐患?

我对这一切都不熟悉,愿意接受建议和阅读材料

非常感谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。