【问题标题】:Event handling in Autobahn PythonAutobahn Python 中的事件处理
【发布时间】:2014-01-02 07:00:23
【问题描述】:

我希望我的 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 时触发的函数

【问题讨论】:

    标签: python websocket autobahn


    【解决方案1】:

    使用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()
    

    【讨论】:

    • 我无法理解您的解决方案。我的课程是从 WebSocketClientProtocol 派生的。我将如何使用线程事件?能否请您详细解释一下。谢谢
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 1970-01-01
      • 2010-09-17
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多