这是我的网络处理程序: https ://gist.github.com/anonymous/22fc110ad126ef3a2c5f
问题是,当接收到数据时它会阻止我的动画(当请求数据时我有一个旋转的轮子)所以看起来应用程序已经崩溃,然后在 1 秒或 2 秒后,当接收到数据时,它的工作方式就像一种魅力。
这条线似乎确保在等待答案时应用程序不会冻结:
local input,output = socket.select( { self.sock }, nil, 0 ) -- this is a way not to block runtime while reading socket. zero timeout does the trick
这是另一个超时设置:
self.sock:settimeout(0)
我试图将它们更改为 0.01 和 0.001 但没有运气。我不确定如何制作它,以免动画冻结。
也许我应该更改为内置异步网络处理程序(带有回调函数)的 Coronas 之一,或者是否可以修改此网络处理程序以使动画不会冻结?