gpt4 book ai didi

python - 如何在 python 中创建长期的 websocket 连接?

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:13 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用 websockets,我之前问过一个关于此的问题。不过,我很快意识到,我连接到服务器的方式是为了“一次性”消息,而我想做的需要不断监听通知。在 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__底部是。

有更好的方法吗?

谢谢,萨斯:)

最佳答案

for 循环可能只是一个示例,因为它只会打印 Hello 0Hello 1Hello 2

当 Python 解释器将模块作为主程序运行时,

__name__ == "__main__" 为 true,您可以阅读有关 here. 的更多信息。每当发生这种情况时,它都会指定在消息、错误以及套接字关闭时应使用哪些函数。完成后,它会永远运行 WebSocket。

因此,要创建您自己的长期 WebSocket,您可以复制此示例代码并更改 on_messageon_erroron_closeon_open 函数来在这些事件发生时执行您希望它们执行的操作。 on_message 在发送消息时激活,on_error 在发生错误时激活,on_close 在 WebSocket 关闭时激活,on_open 在发生错误时激活WebSocket 打开。

关于python - 如何在 python 中创建长期的 websocket 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com