JeuWeb - Crée ton jeu par navigateur
[Push] Détecter la présence des membres - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Push] Détecter la présence des membres (/showthread.php?tid=5307)

Pages : 1 2 3 4


[Push] Détecter la présence des membres - djidi - 12-03-2011

Bonjour,

Après avoir regardé sur différents services de push (Pusher, BeaconPush et PubNub), je me pose une question : comment détecter la connexion/déconnexion d'une personne ?

Pour la connexion, rien de difficile, je peux envoyer un message à l'initialisation, mais comment savoir quand quelqu'un n'est plus connecté (exemple: supprimer le personnage de la map) ?
Mis à part pour Pusher (http://pusherapp.com/docs/presence), je n'ai rien pu trouver dans les docs des autres services.

J'en profite également pour demander parmi ses services, lequel est le plus fiable/rapide.

Merci d'avance Smile


RE: [Push] Détecter la présence des membres - Sephi-Chan - 12-03-2011

PubNub ne supporte pas du tout la notification lors que la connexion est fermée.
Pusher le supporte.
BeaconPush le supportera bientôt par l'intermédiaire de Webhooks (des URLs appelée à la connexion et à la déconnexion).

Je dirais que le plus fiable est PubNub, qui utilise directement la technique du Long Polling. À l'inverse, les autres tentent d'autres approches (plus modernes et efficaces, mais moins supportées) et dégradent progressivement vers le Long Polling (en passant d'abord par FlashSocket), mais le procédé de fallback merdouille parfois (à cause des Flash blocker, par exemple)…


Sephi-Chan


RE: [Push] Détecter la présence des membres - djidi - 12-03-2011

Donc malheureusement étant donné que je dois gérer les présences, je suis obligé de passer par Pusher.
Merci pour la réponse Smile


RE: [Push] Détecter la présence des membres - Argorate - 14-03-2011

Ça dépend se que tu veux faire avec la "présence" de personne, mais tu peux gérer ça sans passer par les info du push serveur également...


RE: [Push] Détecter la présence des membres - djidi - 14-03-2011

Marqué dans mon premier message.
J'ai besoin de savoir exactement quand est en ligne un personnage et lorsqu'il se déconnecte afin qu'il ne reste pas indéfiniment sur la map et je vois mal comment gérer cela correctement sans push...


RE: [Push] Détecter la présence des membres - Argorate - 14-03-2011

Dans ce cas, oui, tu as besoin d'une précision assez forte, donc il faut utilisé les info du push.
Sinon sur beacon push, il me semblait avoir vu dans l'api le moyen de voir qui était en ligne aussi non?

Citation :User-centered API resources

Below are the resources that are more user centered than the ones listed above. To make full use of these, you will need to give your users a unique username when embedding the client. Fair to say, this is right now more of a feature for power users.

Checking if a user is online <- Ça ne peut pas faire l'affaire?

GET /1.0.0/[API key]/users/[username]

Response code is either 200 if user is online or 404 if user is offline. A corresponding JSON response body is also supplied

Forcing logout of a user

DELETE /1.0.0/[API key]/users/[username]

Forces the logout of a user. Result code is 204, hence no response body.
Listing users in a channel

GET /1.0.0/[API key]/channels/[channel]

Returns a JSON list of users in a channel

Sending a message to a user

POST /1.0.0/[API key]/users/[user]

Sends a message to a user. Request body MUST be valid JSON.

source : http://beaconpush.com/guide/rest-api/


RE: [Push] Détecter la présence des membres - Sephi-Chan - 14-03-2011

Savoir qui est en ligne est une chose. Déclencher un événement quand quelqu'un se déconnecte en est une autre. Smile

Si tu disposes d'un serveur dédié pour daemonizer un script PHP qui utilisera Redis, il y a peut-être moyen de faire quelque chose de sympa grâce à la commande expire.


Sephi-Chan


RE: [Push] Détecter la présence des membres - Argorate - 14-03-2011

non, mais si l'user n'est pas en ligne, la cmd qui permet de savoir si il est en ligne doit renvoyer un signalement particulier (typiquement "false"), donc ça revient au même non? au lieu de tester s'il se déconnecte, tu test si il n'est pas en ligne.


RE: [Push] Détecter la présence des membres - djidi - 14-03-2011

Pas sur que j'arrive à maitriser Redis (et après une nuit blanche et un mal horrible de crâne j'en doute encore plus ^^) et si je pars dans cette voie, j'ai l'impression que je vais encore y passer des semaines pour comprendre comme je les ai passé avec APE.

Il est vrai que je serais bien passé par BeaconPush étant donné qu'il permet d'envoyer beaucoup plus de messages et avec beaucoup plus d'utilisateurs connectés mais avec Pusher au moins je sais que cela fonctionne correctement.


RE: [Push] Détecter la présence des membres - Sephi-Chan - 14-03-2011

Rien ne t'empêche d'utiliser plusieurs services de push en même temps. Tu peux utiliser Pusher seulement pour notifier quand un utilisateur se barre.

Redis est plutôt trivial à utiliser, c'est son crédo. La partie chiante, c'est le daemon qui regarde qui se barre. Smile


Sephi-Chan