web-dev-qa-db-fra.com

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

Short: Existe-t-il un moyen de pousser les données du serveur vers une session utilisateur connectée sans que cet utilisateur ait besoin de faire une requête HTTP?

Long (er): Je construis une application HTML5, sur un serveur Apache/PHP/MySQL, qui pourrait être servie aux utilisateurs sur des appareils mobiles (ou peut-être via une application PhoneGap).

Je voudrais informer l'utilisateur de la disponibilité de nouvelles informations dans l'application, sans augmenter les frais de données excessifs en forçant cet utilisateur à exécuter un appel vers le serveur ou en exigeant AJAX appels ( oui, je sais qu'il pourrait rechercher un cookie à un octet, mais je préfère le mettre à zéro).

Un bon exemple de cela serait l'envoi de messages de discussion entre deux utilisateurs lors de la soumission d'un utilisateur à l'autre.

37
joelcollyer

Dans les navigateurs modernes, Websockets ou dans les navigateurs plus anciens, " interrogation longue ". Il existe également des bibliothèques qui peuvent en résumer certaines (comme comète ).

Une bibliothèque très courante actuellement utilisée est socket.io qui se connecte automatiquement avec la meilleure technologie disponible, en utilisant webSockets si disponible et en recourant à d'autres technologies comme l'interrogation longue si non disponible.

Quelques autres références:

Comment puis-je implémenter le "Long Polling" de base?

COMET (serveur Push to client) sur iPhone

Plus d'informations sur l'interrogation longue

Y a-t-il une différence entre l'interrogation longue et l'utilisation de Comet

pousser le web avec des websockets

Oh HTML5, pousser les données vers mon mobile

28
jfriend00

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

4
InspiredJW

ScaleDrone vous permet de pousser de PHP vers JavaScript en utilisant un client API PHP .

1
Rob Fox