JeuWeb - Crée ton jeu par navigateur
Beaconpush, canaux et tchat. - 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 : Beaconpush, canaux et tchat. (/showthread.php?tid=5234)

Pages : 1 2


Beaconpush, canaux et tchat. - Zack - 09-02-2011

Bonjour,

J'ai commencé beaconpush cette semaine, et un soucis me barre la route pour faire le système de communication du jeu.

En fait, dans mon jeu, les joueurs se déplacent sur une carte en 2D iso (En flash), chaque joueur peut donc se parler à travers différents canaux tels que : parler, chuchoter, crier, etc...

Mon problème se situe dans la portée de ces canaux, surtout des 2 premiers (Parler et chuchoter).
Le canal parler permet d'être entendu seulement par les joueurs qui sont à 7 cases autour de lui. Et le chuchoter c'est 1 case.

En SQL, c'était pas compliqué, mais comment faire avec beaconpush ? Créer un canal pour chaque case ?
Mais en faisant cela, le joueur écoutera 194 canaux rien que pour entendre les joueurs à 7 cases tout autour de lui.
Ca fait tout de même beaucoup et ça risque de bien ramer non ?

Ou alors, j'écoute tous les joueurs sur le canal de la zone et je fais le tri en fonction de leur position X et y par rapport à la mienne pour ne prendre que ce dont j'ai besoin. Mais le hic, c'est que la réception d'info se fait via javascript et le tri aussi. Du coup, le joueur pourrait, s'il bidouille le javascript, avoir accès à toutes les conversations, non ? Ce qui n'est pas très sécurisé.

Je sais pas si j'ai été clair sur mon problème, mais si quelqu'un a déjà réfléchi à ce problème, ou alors si en fait c'est tout simple, qu'il me vienne à l'aide Smile

Merci.


RE: Beaconpush, canaux et tchat. - Sephi-Chan - 09-02-2011

Le joueur actif écoute sur le canal de sa case (par exemples cases/24 s'il est sur la case 24).
Quand quelqu'un parle/crie/chuchote, tu récupères les identifiants des cases qui vont êtres concernées pour créer une liste de canaux et tu publies dessus.

Ça ne convient pas ?


Sephi-Chan


RE: Beaconpush, canaux et tchat. - Zack - 09-02-2011

Oh merd*, quel co* ! J'avais pas visualisé ça comme ça -_-

Bon bah merci beaucoup. Désolé pour ce post qui n'aura pas duré longtemps.


RE: Beaconpush, canaux et tchat. - Sephi-Chan - 09-02-2011

Je t'en prie. Cela dit, je me demande si Beaconpush crédite la publication de contenu sur des canaux où personne n'écoute.


Sephi-Chan


RE: Beaconpush, canaux et tchat. - Zack - 09-02-2011

J'ai testé d'envoyer un message sur un canal non écouté + un autre écouté et apparemment, ça ne pose pas de problème.
J'ai quand même reçu le message sur le canal que j'écoutais, mais va savoir ce qu'est devenu l'autre message.


RE: Beaconpush, canaux et tchat. - Horace - 09-02-2011

C'est quoi les prix de Beacon ?
Pas clair, sur leur site. Gratuit pour développeurs (limité 100'000 messages/mois ?), et pour site actif : 1 million messages = 3.29 $ (avec 3 millions gratuits?). Une connexion = 1 message ?

J'ai pas fait "recherche" sur le forum, me tapez pas !


RE: Beaconpush, canaux et tchat. - Zack - 09-02-2011

J'ai pas tout pigé non plus.
Mais le plan développement : 100 000 messages gratuits par mois.
Le plan de prod : 3 000 000 messages gratuits par mois et 3.29$ le million en trop.

Et un envoi à un canal = 1 message.

J'ai compris ça moi.

-----

Sinon pour revenir au sujet, en faisant en sorte d'envoyer un message à chaque canal (Un canal par coordonnée) à 7 cases tout autour du personnage, ça fait environ plus de 100 canaux.
Un message doit donc être envoyé à ces 100 canaux, ça fait 100 requêtes curl. Je vous dis pas le temps que ça met pour les envoyer.

Est ce qu'il y a possibilité d'envoyer un message à plusieurs canaux en une seule fois ? Car là, la seule méthode que j'ai trouvé (Ici) permet d'envoyer un message à un seul canal par requête.


RE: Beaconpush, canaux et tchat. - Sephi-Chan - 09-02-2011

Ce sont les messages envoyés aux subscribers qui sont crédités (ceux qui vont du serveur BeaconPush vers les navigateurs clients, les plus nombreux quoi :p).

Pour ton problème, ça fait effectivement moult requêtes cURL. Il faut ruser en fédérant les canaux ou en faisant des concessions sur l'aspect sécuritaire, voir même avec un système de chiffrement à plusieurs niveaux. ^^


Sephi-Chan


RE: Beaconpush, canaux et tchat. - Zack - 10-02-2011

Et si au lieu d'envoyer un message à ces canaux, je faisais plutôt l'inverse : J'écoute ces 100 canaux et quand quelqu'un envoi un message sur son canal (Sa position), il est intercepté.

Du coup, pour parler, on envoi pas aux 100 canaux mais seulement au canal de sa position. Par contre, on écoute plus d'une centaine de canaux, est ce que ça peut poser problème ou créer des lenteurs d'écouter autant de canaux ?

Et aussi, est ce qu'il y a une fonction javascript/ajax pour se déconnecter d'un canal précis ? J'ai vu qu'on pouvait forcer la déconnexion, mais c'est une déconnexion totale de tous les canaux.


RE: Beaconpush, canaux et tchat. - atra27 - 10-02-2011

Tu fait un canal pour le jeu, a l'envoi du message, php encrypte le message suivant une clé qui différe suivant la case du joueur.
A la reception, le JS décrypte suivant la clé de la case ou le joueur est.
Si le decryptage est ok, alors on affiche, sinon c'est que le message ne dit pas etre vu/entendu donc on ne l'affiche pas.

Mais avec cette solution tu va prendre cher niveau argent car les messages non affichés seront quand même comptabilisés par beaconpush comme des envois.


Et puis il faut trouver un algo de cryptage qui dispose d'implémentations a la fois en php et en JS