带套接字的 Python 多处理

问题描述

我有以下用于网络套接字通信的课程。使用它我已经接收和发送了一些数据。但是使用多处理模块我需要使用来自不同进程的发送和来自不同进程的接收。

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 (将#修改为@)