问题描述
我有以下用于网络套接字通信的课程。使用它我已经接收和发送了一些数据。但是使用多处理模块我需要使用来自不同进程的发送和来自不同进程的接收。
class WebsocketSignaling:
def __init__(self,host,port):
self._host = host
self._port = port
self._websocket = None
self.ssl_context = ssl._create_unverified_context()
async def connect(self):
try:
self._websocket = await websockets.connect("wss://" + str(self._host) + ":" + str(self._port),ssl=self.ssl_context)
return True
except Exception:
print("Cannot connect signaling Server--Exception")
await self.close()
return False;
async def close(self):
if self._websocket is not None and self._websocket.open is True:
await self._websocket.close()
async def receive(self):
try:
data = await self._websocket.recv()
except (ConnectionClosed):
print("---> asyncio.IncompleteReadError")
return None
return data
async def sendDirect(self,data):
await self._websocket.send(data + '\n')
Main.py
from multiprocessing import Process,Queue
def receive(signaling):
while True:
obj = await signaling.receive()
print(obj)
def send(signaling):
while True:
msg = json.dumps({ "data": "hi"},sort_keys=True)
await signaling.sendDirect(msg)
print("Sending")
if __name__ == '__main__':
signaling = create_signaling(args)
p1 = Process(target=receive,args=(signaling,))
p2 = Process(target=send,))
p1.start()
p1.join()
p2.start()
p2.join()
以这种方式使用套接字是否安全,它处理安全。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)