Replaced try/except block in recv_task() by match msg, and added new changes to description comment
parent
db0b59abaa
commit
3f5dec82ed
|
@ -221,28 +221,33 @@ async def open_jsonrpc_session(
|
||||||
'''
|
'''
|
||||||
receives every ws message and stores it in its corresponding result
|
receives every ws message and stores it in its corresponding result
|
||||||
field, then sets the event to wakeup original sender tasks.
|
field, then sets the event to wakeup original sender tasks.
|
||||||
|
also, recieves responses to requests originated from the server side.
|
||||||
'''
|
'''
|
||||||
async for msg in ws:
|
async for msg in ws:
|
||||||
try:
|
match msg:
|
||||||
msg = response_type(**msg)
|
case {
|
||||||
|
'result': _
|
||||||
|
}:
|
||||||
|
msg = response_type(**msg)
|
||||||
|
|
||||||
if msg.id not in rpc_results:
|
if msg.id not in rpc_results:
|
||||||
log.warning(f'Wasn\'t expecting ws msg: {json.dumps(msg, indent=4)}')
|
log.warning(f'Wasn\'t expecting ws msg: {json.dumps(msg, indent=4)}')
|
||||||
|
|
||||||
res = rpc_results.setdefault(
|
res = rpc_results.setdefault(
|
||||||
msg.id,
|
msg.id,
|
||||||
{'result': None, 'event': trio.Event()}
|
{'result': None, 'event': trio.Event()}
|
||||||
)
|
)
|
||||||
|
|
||||||
res['result'] = msg
|
res['result'] = msg
|
||||||
res['event'].set()
|
res['event'].set()
|
||||||
|
|
||||||
except TypeError:
|
|
||||||
if request_type == None:
|
|
||||||
raise
|
|
||||||
await request_hook(request_type(**msg))
|
|
||||||
|
|
||||||
|
case {
|
||||||
|
'method': _,
|
||||||
|
'params': _
|
||||||
|
}:
|
||||||
|
|
||||||
|
if request_hook:
|
||||||
|
await request_hook(request_type(**msg))
|
||||||
|
|
||||||
|
|
||||||
n.start_soon(recv_task)
|
n.start_soon(recv_task)
|
||||||
|
|
Loading…
Reference in New Issue