gpt4 book ai didi

python - 为什么我的程序退出而不是永远运行

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

我有一个websocket client code复制.. 它可以工作,只是它在打印 Hello 1..Hello 2 和 Hello 3 之后退出,然后退出。我认为 run_forever 意味着它将永远运行,那么为什么它会退出呢?如何让程序继续等待 websocket 消息?

import thread
import pdb
import websocket
import time
import requests

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__":
URL = "http://127.0.0.1:8000/login/"

client = requests.session()

EMAIL = "u234234"
PASSWORD = "t234ri3234221"

login_data = dict(username=EMAIL, password=PASSWORD)
r = client.post(URL, data=login_data, headers=dict(Referer=URL))

websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://localhost:8080/",
on_message = on_message,
on_error = on_error,
on_close = on_close,
)
ws.on_open = on_open
ws.run_forever()

最佳答案

我不能声称非常了解如何在 python 中使用 websockets,但一般来说,当您关闭套接字时,您也会关闭关联的连接。因此,为了保持连接打开,我认为您可能需要尝试从 on_open 函数中删除 ws.close() 行。

关于python - 为什么我的程序退出而不是永远运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287318/

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