如何在不向客户端写入任何数据的情况下向客户端触发套接字上可用的数据?

问题描述

我有一个特殊的情况。由于公司政策和其他因素,我不得不编写自己的库来访问 REdis 服务器。我用 C++ 编码并使用了 C hiredis 库,使用了他们的 async API。最后,我使用了 ASIO

在开发中,一切顺利,没有问题。但是在集成/生产中,我收到了 Resource Temporarily Unavailable错误

跟踪到 hiredis,我在他们的 ssl.c 代码中看到他们将 EAGAIN 作为致命错误处理并取消所有待处理的请求。我在我的库中编写了重试逻辑来处理这种情况,但是我无法在本地重现该问题,因此我无法确定我的代码是否有效。

因此问题 - 我想修改 redis 源,通过在第一个请求时向客户端发送数据可用性信号来强制导致错误发生,而不实际将任何数据写入套接字。

主要问题 - 我不知道如何实现。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)