WebSocketApp 与 create_connection

Posted

技术标签:

【中文标题】WebSocketApp 与 create_connection【英文标题】:WebSocketApp vs create_connection 【发布时间】:2018-08-12 17:24:06 【问题描述】:

我想知道是否有人可以解释以下之间的区别:

ws = websocket.create_connection('wss://echo.websocket.org')

ws = websocket.WebSocketApp('wss://echo.websocket.org')

在 Python 包 websocket 中,因为文档不是很清楚。

【问题讨论】:

【参考方案1】:

create_connection 是一个工厂函数,它从 class_ 关键字参数中提供的类生成 websocket 类,默认情况下是 websocket.WebSocket。该类提供低级接口,但可以直接用于只需要与 websocket 进行命令式交互的代码 - 发送消息、等待响应、发送下一条消息 - 等等。

WebSocketAppWebSocket 的包装器,它提供了一个更“事件驱动”的接口。您向构造函数提供回调(或在初始化后通过分配给相关成员),然后调用 run_forever 阻塞直到连接关闭。当消息到来时,WebSocketApp 会调用您的回调函数。这可能会驱动您的整个应用程序,或者您可以在不同的线程中调用 run_forever 并同时执行其他工作(例如根据计时器定期更新游戏状态,而不是仅在收到消息时更新)。

【讨论】:

以上是关于WebSocketApp 与 create_connection的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法从“websocket”(/Users/raphaelhen/Desktop/websocket.py)导入名称“WebSocketApp”

python websocketapp on_message()方法不起作用

QSqlQuery最后无法正常工作

恶意软件将代码注入我的 Dojo/WebSocket 应用程序:如何防止?

如何在类中实现 websocket?

为啥我不能在函数中使用 websocket