如何在 Tornado 中从子进程向 websocket-client 发送消息?

2024-02-23

我有龙卷风服务器。它从 websocket 连接接收消息。我需要将工作人员功能作为单独的进程运行,并且工作人员应该回答客户端。主要思想是在并行模式下工作。像这样的东西

def worker(ws,message):
    input = json.loads(message)
    t = input["time"]
    time.sleep(t)
    ws.write_message("Hello, World!"*int(t))

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('index.html')

class WebSocket(tornado.websocket.WebSocketHandler):
    def check_origin(self, origin):
        return True

    def open(self):
        print("WebSocket opened")
        self.application.webSocketsPool.append(self)

    def on_message(self, message):
        for key, value in enumerate(self.application.webSocketsPool):
            if value == self:
                p = Process(target=worker, args=(value.ws_connection,message,))
                p.start()

    def on_close(self):
        print("WebSocket closed")
        for key, value in enumerate(self.application.webSocketsPool):
            if value == self:
                del self.application.webSocketsPool[key]

当然,由于酸洗错误,这不起作用。如何解决这个问题呢?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Tornado 中从子进程向 websocket-client 发送消息? 的相关文章

随机推荐