En utilisant l'interrogation long HTTP lorsque les prises sont disponibles (par exemple iPhone, Blackberry)

StackOverflow https://stackoverflow.com/questions/3490873

Question

Je vous écris actuellement une application simple multi-plateforme avec Node.js sur le serveur et Web / clients iPhone / Blackberry. La bande passante et les exigences de latence sont semblables à quelque chose que vous verriez dans un IRC « party game » ou tout autre système de chat. J'ai développé le client Web en utilisant http longue interrogation (parlant JSON dans les deux sens).

Pour iPhone / Blackberry je pouvais utiliser le haut dans les bibliothèques HTTP parler à mon implémentation actuelle ou je pourrais écrire un auditeur socket sur le serveur et parler à l'aide de prises. Est-il un avantage à le faire? Pourquoi les clients HTTP non-navigateur semblent être découragés?

Était-ce utile?

La solution

ne peut pas parler à l'iPhone comme je ne sais pas assez sur les détails techniques de la pile réseau, mais pour BlackBerry requêtes HTTP à partir du navigateur sont traitées différemment des demandes initiée app-en général. BlackBerry comme solution consiste non seulement d'un dispositif côté pile TCP / HTTP, mais le service BlackBerry, qui comprend (selon si vous êtes entreprise ou non) un BlackBerry Enterprise Server avec les services de données mobiles (BES / MDS) hébergé sur votre réseau d'entreprise ou un Research In motion serveur hébergé BlackBerry Internet Service (BIS), qui toutes les connexions proxy à partir du navigateur mobile. Ces serveurs peuvent faire beaucoup de choses, y compris la manipulation de certains aspects des cookies, l'authentification et le contenu transcoder au contenu de rendre plus consommable par le dispositif mobile (images, etc.). Pour un BES / MDS ils peuvent même agir comme point de terminaison sécurisé dans une connexion HTTPS.

En tout cas, cela signifie aussi que beaucoup de fonctionnalités que vous attendez d'une connexion TCP / HTTP normale se fait hors de l'appareil, et peut donc être contrôlé par un transporteur ou d'une entreprise ou RIM. prises bare-bones sont différents parce que les différents serveurs du milieu ne peuvent pas faire autant d'hypothèses sur un socket TCP comme possible sur une connexion HTTP, donc ils ne peuvent pas déranger avec vos requêtes HTTP. Beaucoup de BlackBerry apps finissons par écrire leur propre client HTTP sur le dessus de la couche de support pour cette raison, donc si vous devez faire quelque chose comme un sondage long HTTP (Comet?) Écrire sans aucun doute sur le dessus de la connexion socket, pas la connexion intégrée HTTP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top