liuhaopen / UnityMMO

an unity mmo demo, base on ecs(game play), xlua(ui)
MIT License
1.68k stars 438 forks source link

lsocket不支持安卓平台 #2

Closed jerry-zeng closed 5 years ago

jerry-zeng commented 5 years ago

有几个pthread的函数ndk已经不支持了,需要自己加回去,还有个别是其它函数,稳定性真不好说

liuhaopen commented 5 years ago

前端没使用lsocket哦,用的是System.Net.Sockets,刚才我还在安卓上跑过前端,是没问题的。后端的话lsocket在linux上是正常的

jerry-zeng commented 5 years ago

那没问题,我们项目客户端现在集成的lsocket,有我说的问题,现在对它不是很信任。 如果你用了System的Http,有压缩和解压缩的需求,或者直接用System的压缩函数,安卓也是不支持的。

liuhaopen commented 5 years ago

你的客户端是unity做的吗?我是用System.Net.Sockets.TcpClient的,在NetworkManager.cs里可以看到。压缩和解压缩方面,因为用的是sproto,其本身就有压解码的功能了,虽然暂时还没用,不过应该问题不大的。

jerry-zeng commented 5 years ago

也是Unity+xLua,为了解决HTTP功能中压缩和解压缩的问题,特别引入了SharpZipLib,有点庞大。之所以C#自带的压缩在安卓上不能用,是因为Mono没有实现对应的方法,如果用IL2CPP的话就没这问题了。

jerry-zeng commented 5 years ago

你这客户端代码写得很规范,经常用IDE格式化么?架构也很好。客户端和服务器都会,很厉害呀,全栈开发。

顺便说一下,Unity的Timeline性能很差,不要过多使用,小面积用下还可以。它自身的开销太大了,没有优化空间,我也是近期测试知道的。

liuhaopen commented 5 years ago

哈,谢谢夸奖。我代码没做过什么特殊处理哦,c#代码用的是vs code编辑器,lua代码是sublime,应该是装的哪些插件自动格式化的。我工作主要搞前端的,后端也还在学习中而已。Timeline的话我主要当成技能编辑器用了,人物和怪物的技能才用到,性能方面确实没考虑过,主要是我打算项目初期先快速完成基础功能,后面再做优化