如何在Python websocket库中查看WebSocket握手载荷?
解决Python websocket库查看握手载荷的问题
不用create_connection快捷函数,改用手动创建WebSocket实例的方式,就能在连接前开启trace,捕获握手载荷:
from websocket import WebSocket # 先创建WebSocket实例 ws = WebSocket() # 提前开启trace ws.enableTrace(True) # 再发起连接 ws.connect("the websocket url")
为什么之前的方法没用?
create_connection是封装好的快捷方法,内部直接完成了「创建实例+连接」的流程,所以你没法在连接前调用enableTrace。- 这个库的trace日志是自己实现的独立逻辑,和Python标准
logging模块不兼容,所以配置logging.basicConfig不会生效。
进阶:自定义trace输出
如果需要把trace内容保存到文件或者做其他处理,可以自定义trace函数:
import websocket def custom_trace(*args): # 这里可以自定义处理逻辑,比如写入日志文件 with open("ws_handshake.log", "a", encoding="utf-8") as f: f.write(f"{args}\n") # 全局开启trace并指定自定义处理函数 websocket.enableTrace(True, trace_func=custom_trace) # 之后正常创建连接即可 from websocket import create_connection ws = create_connection("the websocket url")
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

