在说明之前我先展示一下我的工程目录层级,因为我连github有点慢,所以像protoc.exe这样上了1M的文件就不传了。所以如果从github上获取源码的同学可能还需要再去我的百度云盘上获取build.bat和protoc.exe。百度云盘链接:http://pan.baidu.com/s/1dFebn25密码:oq2h,当然用linux的同学需要自己再另外获取protoc和自己写build的shell脚本,这里对linux同学造成的小小不便请谅解
不过在git.oschina上有传protoc.exe
这里build.bat、protoc.exe和railgun这个工程的是处于同一个目录下的
Go/workspace就是我的GoPath这个环境变量的值
就是说railgun工程所处的目录是$GoPath/src
Build.bat是protoc.exe操作.proto文件生成相应的.go源文件的批处理命令,在linux下替换成相应.sh脚本命令就行了(这里要稍微注意点的是,如果你的GoPath环境变量有两个以上的路径,这个批处理命令是无法执行的,需要你把批处理里面的%GOPATH%这个值替换成protoc-gen-go.exe所处的绝对路径)
下面开始讲解代码,以发送LoginReq请求为例
运行GateApp.exe,RouterApp.exe, LoginApp.exe
1.在工程里写了一个很粗糙的客户端测试用例ClientForTest.exe:
开始先建立与GateApp建立TCP连接
ch := make(chan proto.Message, 1000)
session := DialManager.CreateClient("127.0.0.1:4101", ch)
if session == nil {
fmt.Println("连接gate失败")
return
}