我刚刚发现 Twitter 流媒体端点以某种方式支持检测慢速连接。
参考:https ://dev.twitter.com/docs/streaming-apis/parameters#stall_warnings (和页面底部)
想法是套接字发送可能会一一处理数据。它知道客户端何时收到一个数据包,因此它可以维护队列并始终知道它的大小。
当客户端为每个人发送一些确认数据包时,这很容易。但 Twitter Streaming API 并非如此——它是一种单向传输。
我的问题是:他们是如何做到这一点的?如果没有一些非常低级别的原始套接字支持,我看不到一种方法 - 但我可能在这里忘记了一些东西。通过一些低级别的支持,我们可能会为每个数据包获得 ACK。这甚至可能吗?可以以某种方式追踪 ACK 吗?
还有其他想法是如何做到的吗?有什么方法可以做到这一点,例如在 Python 中?或任何其他语言示例将不胜感激。
或者也许我在这里不知所措,它只是用来跟踪有多少字节尚未通过 socket.send 处理?但这不是客户端连接的不良指示吗?