go-mqant框架
go-mqant框架
helloworld demo
参考: mqant的HelloWorld
编译后启动进程 (win)
单进程部署
1 | cd ${GOPATH}/bin |
参考: mqant启动
分部署部署
自定义协议返回值
框架默认返回值为 (result string, err string)
可以修改为自定义值, 例如 (result []byte, err Int32)
, 错误码自己定义
参考: mqant自定义封装规则
修改消息体为 protobuf
参考: 客户端与服务端通信可能使用protobuf协议,那么msg就是[]byte
服务器主动给客户端发送消息
参考: 服务器主动给客户端发送消息
后端rpc自定义数据结构
参考: mqant中的RPC
后端模块间的rpc调用时, 记得要传 session 进去
1 | // 注册消息 |
可优化定制
后端rpc
可以直接用 protobuf 把数据都转成打包成 []byte 进行rpc传输数据, 接收到数据时也用 protobuf解包数据即可, 接受时也用, 减少转换工具的 switch case 匹配转换类型
发送数据 关键代码 rpc_client.go
1
2
3
4
5
6
7func (c *RPCClient) Call(_func string, params ...interface{}) (interface{}, string) {
var ArgsType []string = make([]string, len(params))
var args [][]byte = make([][]byte, len(params))
var span log.TraceSpan = nil
for k, param := range params {
var err error = nil
ArgsType[k], args[k], err = argsutil.ArgsTypeAnd2Bytes(c.app, param)接受数据 关键代码 rpc_server.go
1
2
3
4if len(ArgsType) > 0 {
in = make([]reflect.Value, len(params))
for k, v := range ArgsType {
v, err := argsutil.Bytes2Args(s.app, v, params[k])