上一篇文件介绍了网关服务器的启动,其功能主要用于给客户端返回可选的游戏服务器列表,让客户端去连接。其实有些游戏的网关部分使用的是PHP搭建,代码的维护和Erlang是分开的。现在让我们来看游戏服务器的部分。
同样,找到script文件夹,运行run.sh,即可启动游戏服务器(先确认游戏的数据库和相关的表已建立,通过运行sdzmmo.sql文件)。
脚本里的启动参数和一些解释:
+P 102400 erlang节点系统最大并发进程数
+K true 开启kernel poll
-smp disable 禁用smp
-name sd1@127.0.0.0.1 节点名称
-setcookie sd2 设置cookie
-boot start_sasl 使用sasl
-config log 指定配置文件
-s sd server_start 函数入口
进入sd:server_start(),通过start_application(server)启动名为server的app。查看server.app,参数{mod, {sd_server_app, []}},找到回调模块sd_server_app
找到sd_server_app:start/0函数,如下:
start(normal, []) ->
[Ip, Port, Sid] = init:get_plain_arguments(),
{ok, SupPid} =sd_sup:start_link(),
sd_networking:start([Ip, list_to_integer(Port), list_to_integer(Sid)]),
{ok, Sup