diff --git a/parts/net.lua b/parts/net.lua index 394e3d02..bcba175e 100644 --- a/parts/net.lua +++ b/parts/net.lua @@ -126,6 +126,8 @@ end --Connect function NET.wsconn_app() WS.connect('app','/app') + TASK.new(NET.updateWS_app) + TASK.new(NET.freshPlayerCount) end function NET.wsconn_user_pswd(email,password) if WS.status('wsc_user')=='dead'then NET.unlock('wsc_user')end @@ -134,6 +136,7 @@ function NET.wsconn_user_pswd(email,password) email=email, password=password, },6) + TASK.new(NET.updateWS_user) end end function NET.wsconn_user_token(uid,authToken) @@ -143,6 +146,7 @@ function NET.wsconn_user_token(uid,authToken) uid=uid, authToken=authToken, },6) + TASK.new(NET.updateWS_user) end end function NET.wsconn_play() @@ -152,6 +156,7 @@ function NET.wsconn_play() uid=USER.uid, accessToken=NET.accessToken, },6) + TASK.new(NET.updateWS_play) end end function NET.wsconn_stream(srid) @@ -228,14 +233,6 @@ function NET.getUserInfo(uid) }, }) end -function NET.freshPlayerCount() - while true do - for _=1,260 do yield()end - if WS.status('app')=='running'then - WS.send('app',JSON.encode{action=3}) - end - end -end --Save function NET.uploadSave() @@ -383,366 +380,360 @@ function NET.quitChat() end --WS tick funcs +function NET.freshPlayerCount() + while WS.status('app')~='dead'do + for _=1,260 do yield()end + WS.send('app',JSON.encode{action=3}) + end +end function NET.updateWS_app() - while true do + while WS.status('app')~='dead'do yield() - if WS.status('app')=='running'then - local message,op=WS.read('app') - if message then - if op=='ping'then - NET.pong('app',message) - elseif op=='pong'then - elseif op=='close'then - wsCloseMessage(message) - return - else - local res=_parse(message) - if res then - if res.type=='Connect'then - if VERSION.code>=res.lowest then - NET.allow_online=true - if USER.authToken then - NET.wsconn_user_token(USER.uid,USER.authToken) - elseif SCN.cur=='main'then - SCN.go('login') - end + local message,op=WS.read('app') + if message then + if op=='ping'then + NET.pong('app',message) + elseif op=='pong'then + elseif op=='close'then + wsCloseMessage(message) + return + else + local res=_parse(message) + if res then + if res.type=='Connect'then + if VERSION.code>=res.lowest then + NET.allow_online=true + if USER.authToken then + NET.wsconn_user_token(USER.uid,USER.authToken) + elseif SCN.cur=='main'then + SCN.go('login') end - if VERSION.code