2017-10-03 4 views
1

J'ai une application en utilisant le dernier socket.io. Sur un iPad utilisant le dernier iOS, j'ai remarqué que le transport sélectionné est xhr-polling. J'étais sous l'impression que les Websockets étaient entièrement supported sur le safari mobile. Par curiosité, je me demandais pourquoi choisir xhr-polling, quand il apparaît que les websockets sont supportées sur cette plate-forme?socket.io - ipad dernière iOS xhr polling

+0

Quelle version de safari est sur votre ipad? –

+0

Le numéro de version est 11 – Thibs

Répondre

0

La réponse de here.

Socket.IO ne suppose jamais que WebSocket fonctionnera simplement, car en pratique il y a de fortes chances que ce ne soit pas le cas. Au lieu de cela, il établit immédiatement une connexion avec XHR ou JSONP, puis tente de mettre à niveau la connexion à WebSocket. Par rapport à la méthode de secours qui repose sur les délais d'attente, cela signifie qu'aucun de vos utilisateurs n'aura une expérience dégradée.

En outre, à partir du README sur la page Offical Socket.io GitHub:

Socket.IO est pas une implémentation WebSocket. Bien que Socket.IO utilise en effet WebSocket comme un transport lorsque cela est possible, il ajoute des métadonnées à chaque paquet: le type de paquet, l'espace de noms et l'identificateur d'accusé de réception lorsqu'un accusé de réception de message est nécessaire.

+0

Pourquoi reste-t-il en mode interrogation lorsque les sockets doivent être prises en charge? Doit être un autre critère qui l'affecte? Merci – Thibs

+0

Sur le côté serveur Socket.io, vous pouvez explicitement déclarer si utiliser ou non le protocole websocket, donc cela dépend de la façon dont le serveur est configuré. –