簡體   English   中英

如何使用 Python websockets 庫在“ping”調用中獲得“pong”響應?

[英]How to get the "pong" response on "ping" call using Python websockets library?

我有一個訂閱網絡套接字的應用程序,並且不時從中接收一些信息。 在某些情況下,我的應用程序可能會在相對較長的時間內沒有收到任何內容。 在那種情況下,我可能會懷疑 web-socket 已經“死了”。 但是,也可能是 web-socket 沒有任何東西要發送,我只需要等待更長時間。

所以,在這種情況下,我不想猜測延遲的原因是什么。 我只想“主動”詢問網絡套接字是否還活着。 我了解到可以用“ping”來做到這一點,但我不確定它究竟是如何工作的。

例如,我可以執行以下操作:

pong_waiter = await ws.ping()

但是我應該用這個對象做什么? 我想當網絡套接字處於活動狀態時我需要看到一個“pong”字符串,但是我在哪里可以看到它? 返回這個字符串是什么?

添加

如果我執行:

pong_waiter = await ws.ping()
await pong_waiter

我什么也沒得到。 之后我也執行:

pong_waiter.result()

它也不返回任何內容。 但我知道什么是網絡套接字(我仍在從中獲取信息)。

添加 2

如果我執行:

pong_waiter

我得到:

<Future finished result=None>

那么,“乒乓”在哪里?

如果你想等待pong你應該await它:

pong_waiter = await ws.ping()
await pong_waiter

如果您希望pong包含自定義負載,您很可能可以通過在pong_waiter Future完成后調用result()它。

暫無
暫無

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

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