Rom*_*man 5 python ping websocket
我有一个订阅网络套接字的应用程序,并且时不时地从它接收一些信息。在某些情况下,我的应用程序可能会在相对较长的时间内没有收到任何内容。在这种情况下,我可能怀疑网络套接字已经“死亡”。然而,也可能是网络套接字没有任何东西要发送,我只需要等待更长的时间。
因此,在这种情况下,我不想猜测延迟的原因是什么。我只想“主动”询问网络套接字是否还活着。我了解到可以用“ping”来做到这一点,但我不确定它到底是如何工作的。
例如我可以执行以下操作:
pong_waiter = await ws.ping()
Run Code Online (Sandbox Code Playgroud)
但我应该如何处理这个对象呢?我想当网络套接字处于活动状态时我需要看到一个“pong”字符串,但是我在哪里可以看到它?返回这个字符串是什么?
添加
如果我执行:
pong_waiter = await ws.ping()
await pong_waiter
Run Code Online (Sandbox Code Playgroud)
我什么也没得到。之后我还执行:
pong_waiter.result()
Run Code Online (Sandbox Code Playgroud)
它也没有返回任何内容。但我知道什么网络套接字还活着(我仍在从中获取信息)。
添加2
如果我执行:
pong_waiter
Run Code Online (Sandbox Code Playgroud)
我得到:
<Future finished result=None>
Run Code Online (Sandbox Code Playgroud)
那么,“乒”在哪里呢?
await如果您想等待,您应该这样做pong:
pong_waiter = await ws.ping()
await pong_waiter
Run Code Online (Sandbox Code Playgroud)
如果您希望pong包含自定义有效负载,则很可能可以在完成后pong_waiter Future通过调用来获取它。result()
| 归档时间: |
|
| 查看次数: |
3954 次 |
| 最近记录: |