JeuWeb - Crée ton jeu par navigateur
Partage script minichat ? - 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 : Partage script minichat ? (/showthread.php?tid=5657)

Pages : 1 2 3 4


RE: Partage script minichat ? - Viciousity - 23-08-2011

Yep clairement mais parfois un petit exemple orienté permet de comprendre comment vont les choses et comment procéder Smile
Fin dans le cas d'un chat c'est vrai que sa reste un push, une réception, un append.


RE: Partage script minichat ? - Kassak - 30-10-2011

Hum, je viens de m'y mettre (enfin), et quelque chose que je ne pige pas, c'est comment afficher en clair sur la page le message envoyé dans le channel ?

Voici mon code :

Code :
<script type="text/javascript" src="http://server1.beaconpush.com/1/client.js"></script>
<script type="text/javascript">
    Beacon.connect("16b2103e", ['chat']);
</script>

<?php
require('beaconpush.php');
$beaconpush = new BeaconPush();

// Add user to the channel "theBestChannel"
$beaconpush->add_channel('chat');

// Send an event (+data) to all users in the channel "theBestChannel"
$beaconpush->send_to_channel('chat', 'newMessage', array('message' => 'Hello world!'));

$beaconpush->embed(); ?>

<script type="text/javascript">
    Beacon.listen(function (data) { message.append($.text('[' + data.data.message+']')); });
</script>

Sur la page message feed de beaconpush je vois bien le message envoyé :

Citation :Channel Content
chat {"name":"newMessage","data":{"message":"Hello world!"}}

J'ai loupé une étape ? On se connecte, on instancie la classe, on envoie un message, on inclue le JS, et on ecoute ?


RE: Partage script minichat ? - niahoo - 30-10-2011

Code :
<script type="text/javascript">
     Beacon.listen(function (data) { message.append($.text('[' + data.data.message+']')); });
</script>

Ta variable message sur laquelle tu appelles .append(), c'est quoi ?


RE: Partage script minichat ? - Kassak - 30-10-2011

Bonne question ! ^^ Une erreur sûrement.


RE: Partage script minichat ? - atra27 - 30-10-2011

je te conseille au début de faire une page avec le js et une avec le php qui retourné un simple ok quand le push est fait
parce que la ton push à lieu avant le listen en js



RE: Partage script minichat ? - niahoo - 30-10-2011

(30-10-2011, 05:25 AM)Kassak a écrit : Bonne question ! ^^ Une erreur sûrement.

si tu append ton message a rien du tout c'est normal qu'il ne s'affiche pas.


RE: Partage script minichat ? - Kassak - 30-10-2011

Le listen faut que je le mette au debut du code ? Après le connect ?

Et donc, faut que je l'append a quoi ?


RE: Partage script minichat ? - Sephi-Chan - 30-10-2011

J'ai l'impression que tu ne comprends pas bien ce que tu écris. Fais un console.log de la variable data qui parvient dans le callback, ça te permettra de comprendre ce que tu reçois. Ça te permettra de voir que l'API de BeaconPush est un peu pénible dans le sens où tous les messages arrivent par le même callback, donc tu es obligé d'avoir un mécanisme tel qu'un switch pour gérer différemment les types d'envois (un joueur rejoint le canal, un joueur envoie un message sur le canal, etc.).

Tu peux faire ce que tu veux des données. Pour un chat, tu peux avoir une liste genre ul#messages contenant un li pour chaque message. Dans le callback tu auras donc du code pour ajouter un élément li.



RE: Partage script minichat ? - Kassak - 30-10-2011

Ok !

Faut avouer que pour un bourrin comme moi, le concept est assez compliqué et niveau doc c'est pas la joie !

Donc pour le moment j'arrive à afficher les messages dans des li. Je teste ça avec 2 pages, une pour voir l'affichage, et une qui envoie un send quand je refresh, me reste à faire une fonction propre envoyermessage().

Edit : Je vais sûrement poser une question débile, mais vu que je pars du principe que seules les réponses peuvent l'être, je la pose quand même, on peut se passer de BDD ? Du genre je vais faire un tour sur une autre page et les messages que j'ai recup y sont toujours ?


RE: Partage script minichat ? - Sephi-Chan - 30-10-2011

Les messages reçus sont volatiles.

Dans le cas d'un chat, si tu veux afficher les derniers messages reçus, tu devras aller les chercher en base de données. Ou alors tu peux implémenter une liste capée dans le localStorage, pour mémoriser les X derniers messages.