簡體   English   中英

為什么我的程序退出而不是永遠運行

[英]why does my program quit and not run forever

我復制了一個websocket客戶端代碼 。它起作用,除了它在打印Hello 1..Hello 2和Hello 3之后退出,然后退出。 我假設run_forever意味着它將永遠運行,那么為什么退出? 如何保持程序等待網絡套接字消息?

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()行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM