JeuWeb - Crée ton jeu par navigateur
Question sur Ajax Push Engine et ses "tuyaux" - 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 : Question sur Ajax Push Engine et ses "tuyaux" (/showthread.php?tid=28)

Pages : 1 2 3 4


RE: Question sur Ajax Push Engine et ses "tuyaux" - Pigne - 10-01-2011

Justement, je NE VEUX pas rafraichir la page PHP plusieurs fois par secondes, mais utiliser le principe de "directement" redistribué !
Et je voudrais le faire en cliquant juste sur un bouton pour commencer à comprendre comment ça fonctionne Wink

Enfin pas grave, je pense laisser tomber Smile puis comme j'ai dis: ça me console que personne ne sache le faire ici aussi :p


RE: Question sur Ajax Push Engine et ses "tuyaux" - Viciousity - 10-01-2011

Tu dois intercepter le push avec du javavscript et mettre a jour les informations de ta carte avec un animate(); par exemple (si jQuery).


RE: Question sur Ajax Push Engine et ses "tuyaux" - Pigne - 10-01-2011

Non mais avant de l'intercepter... faut l'envoyer.
C'est ça que je sais pas faire. L'intercepter je sais, aucun souci là dessus.


RE: Question sur Ajax Push Engine et ses "tuyaux" - Viciousity - 10-01-2011

Bon faut essayer de se poser un peu et de lire les sujets qui tournent ou même les réponses que les gens donnent.

1. Le push que tu envoie tu le fais avec les données DU PERSONNAGE CONCERNE :
- Bob(ID=>1) bouge de une case sur la droite => j'envoie un push avec son ID et les coordonnée de sa nouvelle case (par exemple) et ensuite je sauve ses nouvelels coordonnées.

2. JE récupère ce push et avec jQuery je fais bouger le personnage sur la carte qui a l'ID=>1 (bob) vers les nouvelles coordonnées.
Cela se met a jour sur tous les joueurs concertant la carte (vu qu'ils recoivent ce PUSH)

Du coup si 100 joueurs bougent en même temps, 100 mouvements seront visibles sur la carte sans les recharger.


RE: Question sur Ajax Push Engine et ses "tuyaux" - Pigne - 10-01-2011

Se poser un peu, ok....

"1. Le push que tu envoie tu le fais avec les données DU PERSONNAGE CONCERNE :"

=> comment on fait un push à partir d'un bouton ? Le perso pour le moment je m'en fiche royal Wink Je fais des tests !

Voilà ma question, ensuite je saurais me débrouiller et savoir ce que j'ai à faire, surtout sans jquery.


RE: Question sur Ajax Push Engine et ses "tuyaux" - Viciousity - 10-01-2011

Ben un formulaire pour le bouton et une requête Ajax pour le formulaire vers la fonction de déplacement dans laquelle tu inclus ton push.
Le formulaire ne recharge donc pas la page en envoyant ses données vers la page qui traite les informations, le push est envoyé des que les données sont traitées et fais bouger ton petit bonhomme sans aucun rechargement. Le monde est heureux ;P

Désolé de m'énerver (les examens mettent un peu a bout et parfois l'impression de parler dans le vide aide pas :S)


RE: Question sur Ajax Push Engine et ses "tuyaux" - Pigne - 10-01-2011

nan mais pas de souci.
J'y arrive, je l'ai indiqué à la page précedente, le souci est qu'il faut envoyer le password dans la requete AJAX sinon on a un beau BAD_PASSWORD en retour.

Hors, filer un password en clair aux user heu...... bref... je suis pas chaud ^^


RE: Question sur Ajax Push Engine et ses "tuyaux" - Viciousity - 10-01-2011

Le mot de passe de quoi ? de l'user? d'APE ?


RE: Question sur Ajax Push Engine et ses "tuyaux" - Sephi-Chan - 10-01-2011

J'ai l'impression que tu ne comprends pas bien comment utiliser le serveur de push.

Regarde cette application très simple : http://real-time-tutorial.heroku.com/. Ça utilise du push (avec le service Web Beacon, pas APE). Tout est expliqué dans cette discussion et tu as même le code source de l'application.

Lorsque tu es sur la page, Javascript écoute un canal du serveur de push (cf. le fichier Javascript).

Lorsque tu clic sur le bouton Envoyer, une requête Ajax est envoyée au serveur Web. C'est le serveur Web qui publie des données sur un canal du serveur de push. C'est à ce moment là que tu peux injecter des données qui peuvent être secrètes (ton mot de passe, par exemple) ou pas (dans mon cas, j'injecte la date courante).

Comme des clients sont connectés à ce canal du serveur de push, chacun d'eux va recevoir les données et actionner la fonction de callback qui va se charger d'afficher le message reçu.

Ainsi, à chaque fois que quelqu'un envoie un message, il est envoyé au serveur Web, qui envoie des données au server de push sur un canal spécifique. Tous les gens qui écoutent ce canal reçoivent alors ces données.


Sephi-Chan


RE: Question sur Ajax Push Engine et ses "tuyaux" - Pigne - 10-01-2011

d'APE

j'ai repris l'exemple d'envoi par page PHP que j'ai adaptée en ajax.

Code PHP :
<?php
$APEserver
= 'http://ape.**************.fr:6969/?';
$APEPassword = '*************';

$messages = array(
'message 1',
'message 2',
);

$QueryJs = 'TestIt("coucou ! '.time().'");';

$cmd = array(
array(
'cmd' => 'inlinepush',
'params' => array(
'password' => $APEPassword,
'raw' => 'postmsg',
'channel' => 'testchannel',
'data' => array( //Note: data can't be a string
'message' => $messages[array_rand($messages)] ,
'jscript' => base64_encode($QueryJs)
)
)
)

);


$data = file_get_contents($APEserver.rawurlencode(json_encode($cmd)));



if (
preg_match('/"value":"ok"/', $data)) {
echo
'Message sent!<br /><pre>'.$data.'</pre>';
} else {
echo
'Error sending message, server response is : <pre>'.$data.'</pre>';
}

Erf, le bouton EDIT me donne une page blanche....

Je double post, désolé Undecided

@Sephi: Oui, mais dans ton exemple, tu envoi vers le serveur apache.
Or, le but est de ne pas envoyer sur le serveur apache afin de ne pas le surcharger.


Edit: Ah bah en fait non... ça marche l'edit ^^