写的这个软件不是web,前端用的是QT写的,后端打算是用go来写,前端和后端通信使用的是TCP协议。
现在遇到的问题:
如下,要怎样才可以实现后端收到前端数据包后发现有字符串"ExecLogin",就能调用到func (this *LoginClass) ExecLogin(str string) 来执行操作呢?不止登陆,前端肯定还有各种各样的功能,要怎样才能弄成通用的方式,就是后端收到数据包能根据数据包中的字符串名来调用相应的执行函数。不知道泛型能不能实现
```
// login登陆类
type LoginClass struct{}
// 执行登陆操作
func (this *LoginClass) ExecLogin(str string) {
.....
}
```
先将协议(数据格式,包括调用方法,参数以及返回值)定义好,然后编码为GOB,通过TCP传输;
接收到数据后GOB解码,然后根据解码后的数据进行业务方法调用
这个不就是gRPC的使用流程嘛
#9
更多评论
建一个`map[string]func(data []byte)`
映射函数名称和函数。提前add到map中。
运行时函数名称应该只有反射能拿到吧。
#1