37 votes

Notifications push du serveur à l'utilisateur avec PHP / JavaScript

Bref: Est-il possible d'envoyer des données à partir du serveur pour un utilisateur connecté session sans que l'utilisateur n'ait à faire une requête HTTP?

Long(er): je suis en train de construire une application HTML5, sur un Apache/PHP/MySQL server, qui pourrait être servi par les utilisateurs sur les appareils mobiles (ou peut-être via une application PhoneGap).

Je voudrais permettre à l'utilisateur de savoir quand il y a de nouvelles informations disponibles depuis l'application, sans soutirage excessif des frais de données en forçant l'utilisateur à exécuter un appel vers le serveur, ou nécessitant des appels AJAX (oui je sais il a pu vérifier pour un seul octet cookie, mais je préfère le faire zéro).

Un bon exemple de ceci serait l'envoi de messages de conversation entre deux utilisateurs sur submit d'un utilisateur à l'autre.

28voto

jfriend00 Points 152127

Dans les navigateurs modernes, les Websockets ou dans les navigateurs plus anciens, "long polling". Il y a aussi des bibliothèques que possible de faire abstraction de certaines de ces (comme la comète).

Un très commun de la bibliothèque en cours d'utilisation est maintenant de socket.io qui se connecte automatiquement avec la meilleure technologie disponible, utiliser les webSockets, si disponibles, et de revenir à d'autres technologies comme le temps d'interrogation si pas disponible.

Quelques autres références:

Comment mettre en œuvre de base "Long Polling"?

COMÈTE (push de serveur à client) sur iPhone

Plus sur le temps d'Interrogation

Est-il une différence entre le long du scrutin et à l'aide de la Comète

En poussant le web avec les websockets

Oh HTML5, Pousser des Données sur mon Mobile

4voto

InspiredJW Points 2830

Je recommande Socket.io

Il exploite

WebSocket, FlashSocket, fichier HTML (pour IE), interrogation longue XHR, interrogation JSONP

C'est avec Node.js ce qui signifie qu'il est de nature non bloquante.

Dans la fonctionnalité en temps réel, la concurrence est un gros problème

donc la nature non bloquante de Node.js et Socket.io vous aiderait

1voto

Rob Fox Points 1386

ScaleDrone vous permet de passer de PHP à JavaScript à l'aide d'une API REST.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X