原来发布的帖子里有这个建议,也就是3秒*10次尝试。
要不极端点,超时1秒只试1次,超时失败的话框还是跳出来,框里显示个提示的失败图片,可以用刷新按钮再手动刷,还是1秒超时*1次。 本帖最后由 uniboee 于 2014-2-27 03:23 PM 编辑
回复 10# pizzagoo
非阻塞式的socket是立刻返回的,读写有没有成功,需要一个loop来不断地对这个socket进行测试。
你的意思是用DoAfterSpecial()来模拟这个不断对socket进行测试的 loop ?
但lua要求协程的调度,需要在创建者和被创建者之间进行,DoAfterSpecial()可是mushclient客户端提供的世界命令,和lua无关啊。 回复 11# labaz
我看到那个timeout了,参照如下代码,意思应该是网络超时过长时,就挂起,但是不明白这个status是如何获得为timeout的:
function receive (connection)
connection:timeout(0) -- do not block
local s, status = connection:receive(2^10)
if status == "timeout" then
coroutine.yield(connection)
end
return s, status
end 回复 12# uniboee
看了一下论坛,原来lz也是mush大牛啊,chat* admire
对,我的想法就是这样
function check_fullme()
判断标记,若未完成
resume socket
DoAfterSpecial(1000,"check_fullme",12)
end
lz看可行不? 回复 14# pizzagoo
我先试试labaz说的方法可不可行。 本帖最后由 labaz 于 2014-2-27 03:35 PM 编辑
回复 11# labaz
还有就是可以建议jason增加直接给出图片链接路径,以减少客户端和web服务器的交互次数,在网络不稳定时估计能间接提高fullme图片显示成功率 建议Jason取消fullme{:7_278:}
页:
1
[2]