繁体   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