JeuWeb - Crée ton jeu par navigateur
Real Time - 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 : Real Time (/showthread.php?tid=163)

Pages : 1 2


RE: Real Time - Viciousity - 08-01-2011

Ouais clairement Smile
Manque juste une fonction pour récupérer l'identifiant de connection (personnelement, pour le moment, je crée un channel aléatoire, et vu que je suis le seul dedans, je récupère le seul utilisateur a l'intérieur et le stocke, malheureusement ce code a plein de défauts donc si ta une idée ;P)

Sinon j'ai ajouté deux helpers qui permettent de :
- Préciser a l'intérieur d'un controlleur ou en before_filter quel(s) channel(s) ouvrir (se rajoute à ceux déjà ouvert évidemment)
class TestsController < ApplicationController
# Ajoute le channel global pour tout le controlleur.
add_push_channel 'global'

def home
# incluera donc le channel 'global'
end

def other
# Rajoute le channel more pour seulement ce controlleur
# Incluera donc les channels 'global' & 'more' dans la vue
add_push_channel 'more'
end
end
- Un helper de logg.
Ecrit dans un fichier toutes les données recues


RE: Real Time - Sephi-Chan - 08-01-2011

Pourquoi tu veux l'identifiant de connexion ?


Sephi-Chan


RE: Real Time - Viciousity - 08-01-2011

Simplement pour par exemple utiliser un système de messagerie entre deux personnes seulement et gérer les multi-broswer sessions avec Smile

Imaginon que tu veuilles causer seulement a l'utilisateur nommé 'Jean'(dans la table USER il porte l'ID1), tu dois lui envoyer un message, la méthode actuelle c'est :
PuPush_all('chan-communication',:action=>'PM', :hash=>'keyConfusedha256', :message=>'Hello-Jean')
Ce code envoi donc un push vers le chanel "chan-communication", avec des donnée JSON
Code :
{'action':'PM','hash':'key:sha256','message':'Hello-jean'}

je récupère ensuite les données de cette manière.
Code :
Beacon.listen(function (data) {
  if(data.chan == 'chan-communication' && data.hash == 'key:sha256'){
    alert(data.message);
  };
}
Donc si jamais un push arrive et que son channel est celui des mp, alors je vérifie si le hash appartient a l'utilisateur, si oui je lui affiche son message dans une alerte (pour l'exemple).

Sachant que ce hash est propre a l'utilisateur et généré a chaque fois que la page est raffraichie.


En connaissant le nom de l'utilisateur il n'y aurait plus qua utiliser le natif :
Beaconpush.user_message("user_id", "Hello Bob!")



RE: Real Time - Sephi-Chan - 08-01-2011

Je ne vois pas trop le problème. Tu peux utiliser un canal propre à chaque joueur, non ?


Sephi-Chan


RE: Real Time - Viciousity - 08-01-2011

Parfois je suis un crétin mon dieu ...

On va remettre sa sur le dos du fait que c'est la première fois que je WaibSoquette Big Grin


RE: Real Time - Plume - 08-01-2011

N'appelle jamais Sephi "Mon Dieu". C'est pas nous rendre service !


RE: Real Time - Viciousity - 09-01-2011

C'est sur moi que je blasphémais mon cher plume Smile