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;
}
}
}