bugfix
This commit is contained in:
parent
d6af12fc69
commit
3f21a9a502
@ -141,21 +141,12 @@ class WebsocketProcessor(PythonScriptProcessor):
|
|||||||
return name=='ws'
|
return name=='ws'
|
||||||
|
|
||||||
async def path_call(self, request,params={}):
|
async def path_call(self, request,params={}):
|
||||||
|
await self.set_run_env(request)
|
||||||
cookie = request.headers.get('Sec-WebSocket-Protocol', None)
|
cookie = request.headers.get('Sec-WebSocket-Protocol', None)
|
||||||
env = request._run_ns
|
|
||||||
if cookie:
|
if cookie:
|
||||||
# request.headers['Cookies'] = cookie
|
# request.headers['Cookies'] = cookie
|
||||||
request['WssCookies'] = cookie
|
request['WssCookies'] = cookie
|
||||||
userid = await env.get_user()
|
ws = web.WebSocketResponse(protocols=(cookie,) if cookie else ())
|
||||||
debug(f'{cookie=}, {userid=}')
|
|
||||||
await self.set_run_env(request)
|
|
||||||
lenv = self.run_ns.copy()
|
|
||||||
lenv.update(params)
|
|
||||||
params_kw = lenv.params_kw
|
|
||||||
userid = lenv.params_kw.userid or await lenv.get_user()
|
|
||||||
del lenv['request']
|
|
||||||
txt = await self.loadScript(self.real_path)
|
|
||||||
ws = web.WebSocketResponse()
|
|
||||||
try:
|
try:
|
||||||
await ws.prepare(request)
|
await ws.prepare(request)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -163,6 +154,17 @@ class WebsocketProcessor(PythonScriptProcessor):
|
|||||||
print_exc()
|
print_exc()
|
||||||
raise e
|
raise e
|
||||||
ws_pool = WsPool(ws, request['client_ip'], request.path, request.app)
|
ws_pool = WsPool(ws, request['client_ip'], request.path, request.app)
|
||||||
|
env = request._run_ns
|
||||||
|
userid = await env.get_user()
|
||||||
|
debug(f'{cookie=}, {userid=}')
|
||||||
|
if userid:
|
||||||
|
ws_pool.register(userid) # 之前漏掉了这一步
|
||||||
|
debug(f'WS Registered: {userid=}')
|
||||||
|
lenv = self.run_ns.copy()
|
||||||
|
lenv.update(params)
|
||||||
|
params_kw = lenv.params_kw
|
||||||
|
del lenv['request']
|
||||||
|
txt = await self.loadScript(self.real_path)
|
||||||
debug(f'========== debug ===========')
|
debug(f'========== debug ===========')
|
||||||
async for msg in ws:
|
async for msg in ws:
|
||||||
if msg.type == aiohttp.WSMsgType.TEXT:
|
if msg.type == aiohttp.WSMsgType.TEXT:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user