我正在努力解决websocket的使用问题。这是我的代码:
import websocket
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print('Websocket: closed')
def on_open(ws):
print('Websocket: open')
ws = websocket.WebSocketApp('ws://echo.websocket.org/',
on_message = on_message,
on_error = on_error,
on_close = on_close,
on_open = on_open)
ws.run_forever()
首先,我为什么要放
ws.on_open = on_open
而不是在定义ws时传递它? (就像我在代码中所做的一样)
此外,我该如何发送消息?我可以包括
ws.send(json.dumps("Hello"))
在
def on_open(ws)
,还有其他方法吗?
最后,鉴于ws.run_forever()
永不停止,我无法关闭连接,我该怎么办?我试图将ws.close()
包括在def on_open(ws)
下,但随后我没有收到任何消息。
我要获取的是如何转置此内容:
ws = ws.create_connection('ws://echo.websocket.org/')
ws.send(json.dumps("Hello"))
result = json.loads(ws.recv())
print(result)
使用WebSocketApp,即直接打印推送的消息,而无需请求结果。