From a49d71f0970fc1067ada90404fc0239098acf0ff Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Mon, 7 Jun 2021 12:45:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=8E=A5=E6=94=B6=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E6=B6=88=E6=81=AF=E7=9A=84task=E5=87=BD=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E6=B0=B8=E4=B9=85=E5=81=9C=E7=95=99?= =?UTF-8?q?=E4=BA=8E=E4=BB=BB=E5=8A=A1=E9=98=9F=E5=88=97=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/net.lua | 605 +++++++++++++++++++++--------------------- parts/scenes/load.lua | 4 - 2 files changed, 298 insertions(+), 311 deletions(-) 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