Je viens de découvrir que les points de terminaison de streaming Twitter supportent la détection de connexions lentes d'une manière ou d'une autre.File d'attente de socket (diffusion en continu sur Twitter comme référence)
Référence: https://dev.twitter.com/docs/streaming-apis/parameters#stall_warnings (et en bas de la page)
idée est que send socket probablement l'une des données de processus par un. Et il sait quand un paquet est reçu par le client afin qu'il puisse maintenir la file d'attente et sache toujours de sa taille.
C'est facile quand le client envoie des paquets de confirmation pour chacun d'entre eux. Mais ce n'est pas le cas avec Twitter Streaming API - c'est un transfert à sens unique.
Ma question est la suivante: comment ont-ils atteint cet objectif? Je ne peux pas voir un moyen de le faire sans un support de socket raw très bas niveau - mais je peux oublier quelque chose ici. Avec un support de bas niveau, nous pourrions probablement obtenir des ACK pour chaque paquet. Est-ce que c'est possible? Les ACK peuvent-ils être tracés?
D'autres idées comment cela a été fait? Tout moyen de le faire, par ex. en Python? Ou n'importe quel autre exemple de langue serait apprécié.
Ou peut-être que je suis au-dessus de ma tête ici et il utilise simplement pour suivre combien d'octets ne sont pas encore traités par socket.send? Mais n'est-ce pas une mauvaise indication de la connexion du client?
C'est aussi ce que j'ai fini par faire. Merci pour votre réponse! – arkens