在sgame\client目录下提供了一个game_cli.go,提供了简单的功能,包括注册、登陆和登出
说明
首先进入client目录,然后编译之:go build game_cli.go; ./game_cli
./game_cli -h
-a string
server ip (default "127.0.0.1")
-c string
cmd
-h show help
-k int
keepalive seconds if method=2
-m int
method 1:interace 2:command
-p int
server port
-q quiet
----cmd----
[ping] ping to server
[login] login <name> <pass>
[logout] logout
[reg] register <name> <pass> <sex:1|2> <addr>
- -a
指定连接的connect_serv地址,省略则使用默认的本地127.0.0.1 - -p
指定连接的connect_serv监听端口,需要指定 - -m
指定运行的模式,1为交互模式; 2为命令行模式,执行一条命令则退出 - -k
只对命令行模式有效,客户端运行命令之后仍然保持连接的时间 - -q
只显示关键信息,忽略冗余信息 - -c
输入的命令,只对命令行模式有效,交互模式下手动输入相关命令即可,支持的命令在cmd里给出,在下面详细说明.
命令
下面的情况均工作于交互式模式下./game_cli -p 18909 -m 1
- PING
一个RTT的流程是CLIENT-->CONNECT_SERV-->LOGIC_SERV-->CLIENT.演示如下:
please input:>>ping
ping...
send cmd:ping success!
ping:8 ms crr_ts:1596545728717835 req:1596545728708842
please input:>>ping
ping...
send cmd:ping success!
ping:8 ms crr_ts:1596545733069217 req:1596545733060415
- REG
reg是注册功能,注册的参数需要包括name pass sex addr 参数以空格分隔,演示如下:
//不带参数
please input:>>reg
----cmd----
[ping] ping to server
[login] login <name> <pass>
[logout] logout
[reg] register <name> <pass> <sex:1|2> <addr>
//注册成功
please input:>>reg suomei suomei123 1 sz
reg... name:suomei pass:suomei123 sex:1 addr:sz
send cmd:reg suomei suomei123 1 sz success!
reg result:0 name:suomei
//重复注册
please input:>>reg suomei suomei123 1 sz
reg... name:suomei pass:suomei123 sex:1 addr:sz
send cmd:reg suomei suomei123 1 sz success!
reg result:1 name:suomei
please input:>>
上面演示了不带参数,注册成功和重复注册的情况。这里以name为key,需要保持唯一性
- LOGIN
login是用已注册的角色进行登陆,需要提供姓名和密码,演示如下:
//密码错误
please input:>>login suomei 1999
login...name:suomei pass:1999
send cmd:login suomei 1999 success!
login result:2 name:suomei
//用户名错误
please input:>>login suoxxmei 1999
login...name:suoxxmei pass:1999
send cmd:login suoxxmei 1999 success!
login result:2 name:suoxxmei
//成功登陆
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success!
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[13694488209648602] res:1096 count:10 attr:0
[13975963186359258] res:1098 count:10 attr:0
[1450326722735066] res:1009 count:10 attr:0
...
上面演示了登陆的几种情况,最后登陆成功并打印了仓库。在角色初始登陆时候会给仓库加上100个道具以便测试
- LOGOUT
logout用于退出登陆,如下:
...
[2435489141222362] res:1016 count:10 attr:0
[5953926350105562] res:1041 count:10 attr:0
please input:>>logout
logout...
send cmd:logout success!
logout result:0 msg:fuck
please input:>>
- LOGIN PS 这里也提供了登陆踢线的情况(这也是为什么部署两个group来演示),如下所示:
//1.首先客户端连接conne_serv1从而在logic_serv1登陆
./game_cli -p 18909 -m 1
start client ...
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success!
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[13975963186359258] res:1098 count:10 attr:0
[6516876303526874] res:1045 count:10 attr:0
//2.新开一个端口连接conn_serv2从而在logic_serv2登陆
./game_cli -p 18910 -m 1
start client ...
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success!
login result:4 name:suomei
//3.这时发现该客户端返回4,同时前一个登陆已经被踢下线鸟:
...
[11020475930897370] res:1077 count:10 attr:0
[4124339001486298] res:1028 count:10 attr:0
please input:>>logout result:2 msg:login-other
read failed! err:EOF
//4.返回新客户端重新登陆成功:
...
login result:4 name:suomei
please input:>>login suomei suomei123
login...name:suomei pass:suomei123
send cmd:login suomei suomei123 success!
login result:0 name:suomei
uid:10003 sex:1 addr:sz level:1 Exp:100 ItemCount:100
[3279914071354330] res:1022 count:10 attr:0
[3420651559709658] res:1023 count:10 attr:0
...
上面的只是简单的说明,新加的功能可以进一步完善