开海盗王服的GM们,一定遇到过这样的问题:
1、多个区的时候,目前已经放出来的登录器(包括我之前用Qt做的那个)只支持单区注册,没有办法进行选区注册;
2、登录器最好跟服务端机器分开不同的主机,实现更新和注册分离,这样就不会占用服务器带宽。
很可惜,目前网上的登录器,都没有能实现这样的功能。
前段时间,尝试用govcl做界面,go做前端和后端语言,想办法解决这一个问题。
经过测试,完美实现了所有功能。
把实现思路分享如下:
1、把游戏服务端、数据库放在腾讯云主机,然后把登录器服务端的在腾讯云主机也放一份,配置好数据库ip,端口,账号,密码等,运行,这份只负责账号注册。当然,有多个区的主机,一样的原理,都放一份登录器服务端并运行起来。这样,我们就得到了每个区都有一个登录器服务端在运行了,他们只负责账号注册功能,文件更新列表是空的,不会产生任何的额外流量,当然也不会卡游戏服务器了。
2、重点来了,把登录器服务端也放一份在阿里云的主机,并把更新文件复制到更新文件夹里。编辑配置文件,把注册ip,端口指向分区的服务器,运行起来。这个登录器服务端只负责更新文件,会把实际分区的注册ip,端口等,在登录器客户端请求时,发送回登录器客户端。
3、登录器客户端在点开注册界面时,会显示不同的分区服务器,选择一个,并填好账号和密码,点击注册时,会根据阿里云的登录器服务端发回的不同分区的ip,端口,自动连接到对应的分区腾讯云主机的登录器服务端,并进行账号注册。
4、登录器服务端是相同的程序,注册和更新文件功能分离,主要区别在配置文件上面。
通过这样的途径,我们就完美实现当初的设想。
如果你是一名程序员,也可以通过相关的思路,自己摸索实现出来。方向是肯定对的,毕竟我已经自己实现出来了。
客户端效果:
服务端文件实现: