月度存档: 4月 2016

考虑引入udp

udp传输在手机网络环境下,比tcp可以获得更小的延迟。

以后游戏考虑引入udp。

推荐两个:

KCP同 UDT/ENET的性能比较

https://github.com/cloudwu/rudp

关于网络同步的一篇文章: http://www.skywind.me/blog/archives/1343#more-1343

另外还确定一件事情。

如果要获得最好的用户体验,客户端必须实现不会因为等待某个消息返回而处于停顿状态。

这里要求开发时要支持消息非顺序到达。

非顺序到达可以,可以先放入一个消息队列中,然后等待丢失的消息到达。但似乎逻辑处理起来,还是需要按消息顺序处理对开发人员更方便。

1、网络层消息可以非顺序到达。

2、业务逻辑按顺序处理消息。

为skynet添加lua-cjson库

skynet早期版本有lua-cjson库,后来使用sproto取代了cjson,也直接将代码移除,但游戏中还是有json的需求。

lua5.3开始支持整形,但cjson并没有适配lua5.3, 如果直接编译使用会造成将json串中的数字转为浮点数。

所幸云风为cjson出一个补丁:https://github.com/mpx/lua-cjson/pull/22

当然如果感觉麻烦,还可以直接使用云风维护的一个分支:https://github.com/cloudwu/lua-cjson