无名杀服务器搭建记录
序言
晚上打算和同学玩三国杀,发现了Github上的这个平替:https://github.com/libnoname/noname。
叫做“无名杀”。及其适合几个小伙伴自己搭建服务器玩。
搭建服务器
下载他们的代码之后,按照他们官方的Wiki,直接在项目根目录执行
1 |
|
就可以运行他们的无名杀服务器了。
这就是无名杀的本体了。然后我发现这样运行的本体是一个纯静态页面,所有计算都是在本地浏览器进行的。所以直接用nginx把这个静态页面反向代理出来,就已经可以在本地愉快地玩三国杀和AI对战了。
然而我们的目标是和小伙伴联机游戏,打开游戏的联机选项之后,发现需要输入联机服务器地址,于是猜测还需要运行一个联机服务器程序。
联机服务器
通过一番寻找,发现联机程序就是/game/server.js
这个程序。运行
1 |
|
就会在8080端口运行联机服务器。
这个联机服务器是运行在Websocket之上的,所以用nginx反向代理的话, 要支持Websocket。
联机地址
假设最终联机服务器地址是
1 |
|
且nginx反向代理之后暴露的端口是默认的443端口,那么在游戏界面要填入的联机服务器地址是
1 |
|
虽然wss协议默认就是在443端口上的,但是上面这个:443
是必不可少的,因为不然的话,无名杀会默认给你连到8080
端口。(困扰了好久)
部署到Serverless
因为无名杀本体(去掉联机服务器)是一个纯静态页面,所以可以把它部署到注入Cloudflare Pages或者最新出的腾讯的Edgeone Pages等平台,从而节省(白嫖)带宽资源。需要注意的一点是,根目录下的noname-server.exe
文件因为有80多mb的大小,太大了,在这些平台下会部署失败,所以要把它删掉。(别问我为什么他们代码里面会塞一个.exe文件)
如果是部署到CLoudflare Pages上的话,build command设置成rm noname-server.exe
就好了。
部署到Edgeone Pages上的话,只能先在github的repo里把这个文件删掉。