对于在一个类中重写WebSocketApp 的回调函数遇到的问题

在创建websocket连接时,最好开启追踪回溯,不然你都发现不了这个错误!!!

开启这个就相当于可以看到ws得报错信息,我之前没开,一直没报错,花了很长时间解决。

复制代码
websocket.enableTrace(True)

问题描述:

将websocket的on_open()封装到一个类中,就会出现如题问题。

error from callback <bound method CallAI.on_message of <main.CallAI object at 0x000001D8EDC9B4C8>>: on_message() missing 1 required positional argument: 'message'
File "D:\Anaconda\envs\Game\lib\site-packages\websocket\_app.py", line 343, in _callback
callback(*args)

解决方案

问题出在websocket的_callback方法调用上。

python 复制代码
    def _callback(self, callback, *args):
        if callback:
            try:
                if inspect.ismethod(callback):
                    callback(*args)
                else:
                    callback(self, *args)

默认是调用函数,然后传入参数。

当on_open(self, ws)是class内的方法时,会把self也当成一个参数传给_callback,这样它就找不到想要的ws,可以把ws设置为一个类的全局变量,不需要传入到on_open中,直接从全局self.ws调用。

相关推荐
杨凯凡6 小时前
【006】常见 WebSocket 场景与后端 session/鉴权的关系
网络·websocket·网络协议
咕白m6257 小时前
Python 高效添加与管理 Excel 工作表
后端·python
pixle07 小时前
【 LangChain v1.2 入门系列教程】【四】结构化输出,让 Agent 返回可预测的结构
python·ai·langchain·agent·智能体
木心术17 小时前
openclaw与Hermes的优劣势对比
人工智能·python·opencv·自动化
潇洒畅想7 小时前
1.2 希腊字母速查表 + 公式阅读实战
java·人工智能·python·算法·rust·云计算
深度学习lover7 小时前
<数据集>yolo 瓶盖识别<目标检测>
人工智能·python·yolo·计算机视觉·瓶盖识别
测绘第一深情8 小时前
MapQR:自动驾驶在线矢量化高精地图构建的端到端 SOTA 方法
数据结构·人工智能·python·神经网络·算法·机器学习·自动驾驶
高洁018 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·python·深度学习·transformer
书香门第8 小时前
搭建免费的Ollama AI Agent
人工智能·python·ollama
小白学大数据8 小时前
分布式爬虫核心技术详解与工程实践
开发语言·分布式·爬虫·python