我试图在python中使用websockets,之前我曾就此提出过一个问题。不过我很快意识到,我连接到服务器的方式是为了#34;一个关闭"消息,而我想做的事情需要不断地收听通知。 在python websocket client的文档中,我可以看到以下代码:
import websocket
import thread
import time
def on_message(ws, message):
print message
def on_error(ws, error):
print error
def on_close(ws):
print "### closed ###"
def on_open(ws):
def run(*args):
for i in range(3):
time.sleep(1)
ws.send("Hello %d" % i)
time.sleep(1)
ws.close()
print "thread terminating..."
thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://echo.websocket.org/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
问题是,我对python仍然很陌生,而且我不完全理解这段代码。由于它是示例代码,并且做了我不需要它的事情,我想了解它是如何工作的。例如,我不了解for循环的用途,或者底部的__name__
和__main__
是什么。
有更好的方法吗?
谢谢, 萨斯:)
答案 0 :(得分:1)
for循环可能只是一个例子,因为它只会打印Hello 0
,Hello 1
和Hello 2
。
__name__ == "__main__"
是正确的,您可以阅读更多关于here.的信息。每当发生这种情况时,它会分配应该在消息,错误和当插座关闭时当它完成后,它将永远运行WebSocket。
因此,要创建自己的长期WebSocket,您可以复制此示例代码并更改on_message
,on_error
,on_close
和on_open
函数来执行您的操作希望他们在这些事件发生时做。发送消息时on_message
会激活,发生错误时会on_error
,WebSocket关闭时会on_close
,而WebSocket会打开时会on_open
。