gpt4 book ai didi

python - 覆盖 Autobahn/Twisted WebsocketClientProtocol 类

转载 作者:行者123 更新时间:2023-11-28 22:52:12 24 4
gpt4 key购买 nike

我想重写我的 WebSocketClientFactory 类以允许传入数据填充作业队列。这是我正在尝试的连接代码

    factory = WebSocketClientFactory("ws://localhost:7096")
job_queue = Queue.Queue()
factory.protocol = BridgeSocket(job_queue)
connectWS(factory)

这是我的套接字类:

class BridgeSocket(WebSocketClientProtocol):
def __init__(self,producer_queue):
self.producer_queue = producer_queue

def sendHello(self):
self.sendMessage("hello")

def onOpen(self):
self.sendHello()
.....

但是我得到了错误

exceptions.AttributeError: BridgeSocket instance has no __call__ method

有什么方法可以在我的主线程和我在其中创建的 websocket 之间共享队列。

最佳答案

一个选择是做

factory = WebSocketClientFactory("ws://localhost:7096")
factory.job_queue = Queue.Queue()
factory.protocol = BridgeSocket

然后像这样从你的协议(protocol)中访问共享队列

class BridgeSocket(WebSocketClientProtocol):

def onMessage(self, payload, isBinary):
self.factory.job_queue.put(payload)

*旁注:您使用的是来自 GitHub 的 AutobahnPython trunk 吗?您应该使用标记版本或 PyPI (0.6.5) 的最新版本。*

关于python - 覆盖 Autobahn/Twisted WebsocketClientProtocol 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20740987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com