如何解决让客户端远程启动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 举报,一经查实,本站将立刻删除。