使用photonserver到现在 已经快有2年多了,现在把一些遇到的问题与解决办法来和大家分享一些
一 队列的使用
定义一个队列
private readonly IFiber SendList;
实例化一个队列并开始队列
SendList = new PoolFiber();
SendList.Start();
把发送任务 加到队列中
Dictionary<byte, object> data = new Dictionary<byte, object>();
data.Add(1, p.Index);
data.Add(2, p.GetPacketBytes());
OperationResponse operation = new OperationResponse();
operation.SetParameters(data);
SendList.Enqueue(()=>SendOperationResponse(operation,new SendParameters()));
队列用起来还是比较方便的但是关于代码具体还有一些东西比较好,比如序列化和反序列化都有自动处理的一些功能。
二关于PHOTONSERVER的链接之前的数据包发送
一开始我像做一个客户端链接PHONTONSERVER的时候就发送一个服务器基本数据给客户端,一开始我放到构造函数里面,结果一直在报错。始终没好得解决方案,后来研究了文档 发现不能直接利用发送函数去解决 我把解决方法贴出来。
OperationResponse operation = new OperationResponse();
operation.SetParameters(data);
myClient.RequestFiber.Enqueue(() => myClient.SendOperationResponse(operation, new SendParameters()));
return myClient;
实际就是通过 myClient.RequestFiber.Enqueue 这个系统默认得一个队列来发送数据,但是这个队列还有什么其他得用法 还需要深入研究。
我这边主要还是拿这个当网关来处理,主要就是转发数据。游戏服务器的主逻辑反而没有去研究。
今天就写这么多