CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [NodeJS] Seulement un onglet par utilisateur.

DébutPage précedente
1
Page suivantePage suivante
Cuillerebleue Cuillerebleue
MP
Niveau 10
19 janvier 2017 à 21:52:29

Salut. :oui:

Je fais un jeu sous forme de tchat avec NodeJS et Express. J'organise les utilisateurs de la façon suivante : lors d'une première connexion, ils sont anonymes. (Leur pseudo est *anonymous suivi d'un nombre) Et ils peuvent se connecter par la suite.

Le fait est qu'il est possible pour les utilisateurs d'ouvrir plusieurs onglets à la fois. Cela biaise donc tout le programme et ils peuvent en plus flood le tchat et se connecter massivement.

J'ai fait une recherche et je suis tombé sur un topic stackoverflow qui m'expliquait qu'il faut utiliser les sessions. Or, les sessions ne s'utilisent qu'avec les membres connectés et pas ceux anonymes. (De ce que j'ai compris)

Vous auriez une idée pour m'aider ? Merci d'avoir lu. :ok:

AzazelBee AzazelBee
MP
Niveau 10
19 janvier 2017 à 23:25:31

Je ne connais pas trop le framework Express, mais il doit y avoir moyen d'établir des session "pour les utilisateurs anonymes", ça commence à dater, mais j'ai déjà fait ça avec le framework hapi.js et https://github.com/hapijs/hapi-auth-cookie .

(il me permettait de faire une session même sans authentification, et avec un peu de réflexion, y avait aussi moyen de migrer des données d'un utilisateur non authentifié vers un authentifié...)

Après, pas sûr que ça suffisent fasse à un utilisateur bloquant ses cookies, utilisant la navigation privé, plusieurs navigateurs, ...

Hmmm, j'ai pas de solution pour ça... Je pense que tu peux juste complexifier davantage le process, mais ça ne règlera pas tout les cas... Tu pourrais ptet capturer les IP des clients, pour empêcher 2x la même IP d'établir une session ou ce genre de chose, mais là ça pénaliserait également toute personne utilisant un même wifi... Y a pas vraiment de solution parfaite pour ça je pense...

Message édité le 19 janvier 2017 à 23:28:15 par AzazelBee
lisarael lisarael
MP
Niveau 13
20 janvier 2017 à 08:15:37

Utilise l'IP + le fingerprint, ça permet d'identifier assez bien l'utilisateur.
Ça ne sera pas la solution miracle, mais ça te débarrassera déjà d'une grosse partie des cas.

Cuillerebleue Cuillerebleue
MP
Niveau 10
20 janvier 2017 à 21:55:08

Le 19 janvier 2017 à 23:25:31 AzazelBee a écrit :
Je ne connais pas trop le framework Express, mais il doit y avoir moyen d'établir des session "pour les utilisateurs anonymes", ça commence à dater, mais j'ai déjà fait ça avec le framework hapi.js et https://github.com/hapijs/hapi-auth-cookie .

(il me permettait de faire une session même sans authentification, et avec un peu de réflexion, y avait aussi moyen de migrer des données d'un utilisateur non authentifié vers un authentifié...)

Après, pas sûr que ça suffisent fasse à un utilisateur bloquant ses cookies, utilisant la navigation privé, plusieurs navigateurs, ...

Hmmm, j'ai pas de solution pour ça... Je pense que tu peux juste complexifier davantage le process, mais ça ne règlera pas tout les cas... Tu pourrais ptet capturer les IP des clients, pour empêcher 2x la même IP d'établir une session ou ce genre de chose, mais là ça pénaliserait également toute personne utilisant un même wifi... Y a pas vraiment de solution parfaite pour ça je pense...

Je préfère la dernière solution, tant pis pour les connexions provenant d'un même wifi. (Ils font ça il me semble sur extinction.fr et haxball) Toujours mieux que de se faire spam massivement au niveau des requêtes.

Le 20 janvier 2017 à 08:15:37 lisarael a écrit :
Utilise l'IP + le fingerprint, ça permet d'identifier assez bien l'utilisateur.
Ça ne sera pas la solution miracle, mais ça te débarrassera déjà d'une grosse partie des cas.

Je vais me renseigner sur le fingerprint, merci. :ok:

Cuillerebleue Cuillerebleue
MP
Niveau 10
22 janvier 2017 à 19:24:15

J'ai fait toute la logique pour y parvenir mais impossible de déconnecter un utilisateur (socket) en fonction de son id. (socketid)

Après plusieurs recherches, je me demande même si c'est possible. Je ne peux que faire socket.disconnect(), impossible de sélectionner un socket en particulier grâce à son id et de forcer la déconnexion. :-(

Vous auriez une idée s'il vous plaît ?

Cuillerebleue Cuillerebleue
MP
Niveau 10
23 janvier 2017 à 20:18:58

:up:

Cuillerebleue Cuillerebleue
MP
Niveau 10
23 janvier 2017 à 21:32:17

Pour ceux qui passeraient par là via Google, j'ai utilisé ceci:
io.sockets.connected[socketid].emit('disconnect');

Ensuite j'écoute l'événement :

socket.io('disconnect', function(){

socket.disconnect();
});

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment