Autobahn Python中的事件处理

时间:2014-01-02 07:00:24

标签: python websocket autobahn

我希望我的websocket客户端在my_flag设置为True时立即关闭连接。 这是我的套接字类:

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

现在,my_flag在程序运行的某个地方经过一段时间后设置为true。(在另一个线程内)。而不是等待

while True:
    sleep(1)

有点循环,有没有我可以定义并附加到我的websocket类的事件。 即当my_flag设置为true时被触发的函数

2 个答案:

答案 0 :(得分:0)

使用threading.Event

# initialization code
self.my_event = threading.Event()

# sct.my_event.set() is called from somewhere

# waiting code, to replace while True:...
sct.my_event.wait()

答案 1 :(得分:0)

您应该使用Twisted deferToThread生成后台任务,然后使用callFromThread通知主线程上运行的WebSocket内容。