websockets上的msgpack rpc
websocket-rpc的Python项目详细描述
WebSocket RPC
websocket上的msgpack rpc
示例
服务器:
importasynciofromsanicimportSanicfromwsrpcimportWebsocketRPCapp=Sanic(__name__)classSampleHandler:def__init__(self,rpc):self.remote=rpcasyncdefadd(self,a,b):awaitasyncio.sleep(5)returna+basyncdeftest(self):return23@app.websocket('/')asyncdefhome(request,ws):awaitWebsocketRPC(ws,SampleHandler).run()app.run(host="0.0.0.0",port=5555,debug=False)
客户:
importasyncioimportwebsocketsfromwsrpcimportWebsocketRPCloop=asyncio.get_event_loop()asyncdefgo():asyncwithwebsockets.connect('ws://127.0.0.1:5555/')asws:rpc=WebsocketRPC(ws=ws,client_mode=True)jobs=[rpc.request.add(a,b)fora,binzip(range(10),range(5,15))]r=awaitasyncio.gather(*jobs)print(r)r=awaitrpc.notify.add(2,3)print(r)awaitrpc.close()loop.run_until_complete(go())