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


RE: Beaconpush, canaux et tchat. - Viciousity - 11-02-2011

Imaginons un système assez simple:
- j'envois un message a BP(beaconPush) qui contient l'ID de ta case mais cryptée avec un clé (salt ?)
=> Permet de déjà éviter au hackeur de bêtement utiliser un listen sur une donnée genre message[case] = 23 mais plutôt d'avoir un truc genre message[case] = "jfdkfjslgjfdkslgjdfklsgdkl9736hdjsfdj"
- J'ouvre la lecture pour les messages qui sont seulement sur ma case (dont l'ID est cryptée)
=> Cela limite le nombre de message que les gens recoivent et donc optimise l'économie des message BP.

Et voila tu ne recois que les messages de ta case ;P

ps: tu peux rajouter un crypt du message pour plus de sécurité mais bon est ce que ton jeu a réellement besoin de sa ??


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

Mais le truc, ça veut dire que le joueur doit écouter tout le jeu. Actuellement aux heures de pointes, il y a une centaine de joueurs. Alors écouter tous ces joueurs parler pour ensuite faire le tri, ça fera une grosse quantité d'info à réceptionner.
Ce qui ralentira forcément la réception (Bien que pour un tchat, le temps dé réception je m'en moque un peu).

Mais côté client, est ce que le tri de cette grosse quantité de messages ne va pas saturer le navigateur ? (Surtout s'il doit décoder position et message après tri)


RE: Beaconpush, canaux et tchat. - Viciousity - 12-02-2011

Non il ne doit pas écouter tout le jeu vu que tu n'ouvres que le canal de ta case ;P


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

En fait, tu pars sur la même idée que Sephi sur la première page. Mais comme il faut envoyer ce même message à toutes les positions situés à 7 cases tout autour du joueur, ça fait 196 positions (Et donc canaux) sur lesquels il faut envoyer ce message. Soit 196 requêtes curl ce qui est un peu beaucoup xD

A moins que tu connaisses une méthode pour envoyer un même message à plusieurs canaux en une seule requête curl ?

Ou alors j'ai rien compris de ce que tu m'as raconté ^^


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

Faudrai étudier l'api de BP
Y a peu etre un moyen de dupliquer une requete sur plusieurs canaux en un seul appel.


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

Je propose une alternative bien plus simple.

Quand un utilisateur poste un message (parlé, crié ou chuchoté), le serveur détermine les utilisateurs concernés par ce message et envoie les messages sur leur canal /users/:user_id/messages.

Et le problème est réglé avec un minimum de messages facturés !


Sephi-Chan


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

Donc un canal par user...
C'est une solution en effet

Sa force a effectuer un traitement avant d'envoyer la requete cURL mais c'est viable


RE: Beaconpush, canaux et tchat. - Viciousity - 12-02-2011

+1 pour sephi Smile


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

En testant par hasard, j'ai trouvé comment envoyer un message à plusieurs canaux en une requête curl. Il suffit tout simplement d'espacer les canaux par une virgule.

Comme ceci : canal1,canal2,canal3,etc...

Du coup, ça résout mon problème. Y'aura qu'un seul canal à écouter ainsi qu'une seule requête à envoyer.

Merci à tous pour votre aide en tout cas Smile