消息使用的是protobuf。客户端有个拾取物品的消息,消息头为2001+消息体。另外还有个丢弃物品的消息,消息头为2002+消息体。服务器除了使用switch根据消息头判断该如何解析消息体之外有没有别的方法?
例如我客户端使用的是c#,写了一个字典委托,key值保存消息头,value值保存具体解析消息的方法。接收到服务器发送的消息之后只需要遍历这个字典匹配key值就好了。用switch的话感觉消息多了判断会很麻烦,代码也会很多。。
更多评论
注册一个类似`map[int]func([]byte)`这样的协议处理函数分发表就可以了,收到每个协议的时候,根据消息id去分发表里查找对应的处理函数。
#1