首先描述问题,通过 threading 去连接多个 websocket 服务,服务是都连接成功了。但是代码执行到“ws = WebSocketHandler(self.host, self.name)”之后就不执行了,初次接触,没找到原因,还请熟悉 python 的朋友给传授下经验
class ThreadingHandler(threading.Thread):
host = ''
name = ''
q = ''
def __init__(self, host, name, queue):
'''
重写父类 init
:param host: 服务器地址
:param name: 服务器名称
'''
super().__init__()
self.host = host
self.name = name
self.q = queue
def run(self):
ws = WebSocketHandler(self.host, self.name)
# 这里往后就没在执行了
print(ws)
class WebSocketHandler():
"""
socket handler
"""
# websocket 服务地址
host = ''
# 服务器名称
name = ''
# websocket 实例
socketInstance = ''
# 服务链接状态
connectStatus = False
def __init__(self, host, name):
'''
:param host:服务器地址
:param name:服务器名称
:return
'''
self.host = host
self.name = name
# 连接服务器
self.connect()
return self.socketInstance
def connect(self):
'''
链接服务器
'''
# debug 模式
# websocket.enableTrace(True)
self.socketInstance = websocket.WebSocketApp(
self.host,
on_open = self.onOpen,
on_message = self.onMessage,
on_error = self.onError,
on_close = self.onClose
)
self.socketInstance.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.