using Fleck; using System; using pb = global::Google.Protobuf; namespace BattleServer { /// /// 客户端链接对象 /// class Client { private IWebSocketConnection socket; public Client(IWebSocketConnection _socket) { socket = _socket; socket.OnMessage = domessage; socket.OnBinary = doBinary; } private void domessage(string message) { } /// /// 接收rpc数据 /// /// private void doBinary(byte[] message) { Pb.RpcMessage msg = Deserialize(message); Task.Run(() => { handle(msg); }); } /// /// 处理远程请求 /// /// private void handle(Pb.RpcMessage msg) { } /// /// 反序列化protobuf /// /// /// /// public static T Deserialize(byte[] dataBytes) where T : pb.IMessage, new() { T msg = new T(); msg = (T)msg.Descriptor.Parser.ParseFrom(dataBytes); return msg; } } }