Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur les websockets dans les sites web

Créer un jeu multi joueur dans un site internet

    21 juin 2022 à 17:36:58

    Bonjour à tous, 

    Je souhaite réaliser un jeu multijoueur simple, qui consiste seulement à répondre à des questions. Le but est de comparer les joueurs entre eux et voir celui qui a eu le plus de points. Pour ceux qui connaissent il y a un jeu appelé popsauce ou le k culture qui ressemblent un peu à ce que je veux faire. Ce jeu sera intégré à une page de mon site internet que je construis essentiellement en javascript (d'où ma question dans cette catégorie, cependant si vous avez des solutions qui utilisent du PHP je suis également preneuse)

    Pour faire un jeu multi joueur j'ai besoin d'utiliser des websockets, cependant, de ce que j'ai compris mon site internet a déjà son propre websocket ce qui rend l'utilisation d'un serveur client par moi-même impossible (cf ce lien : https://github.com/websockets/ws). Dès que j'utilise require comme suit :

    const WebSocket = require('isomorphic-ws');
    

    J'obtiens l'erreur uncaught referenceError: require is not defined qui m'empêche d'utiliser toutes les solutions pour faire utiliser les websockets dans mon site. (cf les solutions que j'ai testé qui n'ont pas marchées : https://stackoverflow.com/questions/19059580/client-on-node-js-uncaught-referenceerror-require-is-not-defined ). Si je veux remplacer require par import j'ai l'erreur "relative references must start with either "/", "./", or "../"." que je n'ai pas non plus réussi à résoudre. Ainsi je me retrouve bloquée.
    Je tiens à préciser que j'ai essayé beaucoup de modules pour les websockets (ws, socket.io, colyseus.io, browserify...) mais ils utilisent tous à un moment donné la fameuse ligne "require" que je n'arrive pas à exécuter sans mon message d'erreur.

    Après plusieurs jours de recherches je ne trouve toujours pas de solution à mon problème. Ainsi j'aimerais revenir à la case départ et voir toutes les solutions possibles. Ne connaissant rien aux websockets et aux connexions client-serveur, je souhaiterais avoir vos avis, et/ou suggestions.

    1. Est-il possible de faire des connexions client-serveur en utilisant les websockets du serveur de mon site internet ? (J'utilise infomaniak) Si oui, comment ?

    2. Est-ce que je peux faire un autre serveur en utilisant le module ws (ou socket.io, qu'importe le module), créer ma page jeu multi-joueur avec et charger cette page via mon site internet ?

    3. Essayer de passer outre les websockets, même si j'ai vu que c'était pas recommandable ?

    Je serai ravie si vous avez d'autres propositions ou si vous avez des réponses à mes questions. De façon plus globale je souhaiterai savoir s'il y a une solution qui existe pour utiliser des websockets dans un site internet qui ne pose pas de problème quand on fait des require ou import ? 

    Merci d'avance

    -
    Edité par chubbymarschmallow 22 juin 2022 à 10:29:56

    • Partager sur Facebook
    • Partager sur Twitter
      21 juin 2022 à 18:23:52

      Bonjour ce n'est pas que tu ne peux le faire c'est que tu tentes d'utiliser un module node js alors que je pense tu n'utilises pas un backend node js ou alors tj n'as pas installer le module via yarn ou npm

      Les websockets étant pas mal spécifiques à ce que tu souhaites faire meme s'il y a des "choses" générales essaie de te regarder un tutoriel qui t'en explique le concept puis tente sur quelque chose de pas très complexe pour tester

      En vanilla js l'objet Websocket t'offrira les fonctionnalités nécessaires 

      https://developer.mozilla.org/fr/docs/Web/API/WebSocket

      en php tu as des choses comme Rachet

      -
      Edité par zvheer 21 juin 2022 à 18:29:08

      • Partager sur Facebook
      • Partager sur Twitter

      yasakani no magatama

        22 juin 2022 à 9:43:16

        Bonjour,

        Merci beaucoup pour ta réponse !

        J'ai regardé pas mal de tutoriels mais comme je le dis dans mon message tous ces tutoriels créent leur propre serveur avec les websockets mais je n'ai trouvé aucun tutoriel qui faisait une explication du comment créer un serveur sur un site internet (même quand je regardai des tutoriels pour des chats en ligne, je n'ai trouvé aucune vidéo qui expliquait la création de chat en ligne sur un site web). Merci pour la proposition php, je vais voir si je peux utiliser cette possibilité

        Concernant cette partie :

        "ce n'est pas que tu ne peux le faire c'est que tu tentes d'utiliser un module node js alors que je pense tu n'utilises pas un backend node js ou alors tj n'as pas installer le module via yarn ou npm"

        Je ne savais pas qu'il fallait utiliser un backend node.js, je ne sais même pas ce à quoi cela correspond parce que je pense que j'ai un mélange de js et php pour le backend, donc je vais faire des recherches là-dessus, par contre j'ai installé tous mes modules via npm. 

        Mon package.json avec quelques modules websocket que j'ai essayé d'utiliser en les installant par npm : 

        {
          "type": "commonjs",
          "devDependencies": {
            "autoprefixer": "^10.4.7",
            "nodemon": "^2.0.16",
            "postcss": "^8.4.14",
            "tailwindcss": "^3.1.2"
          },
          "dependencies": {
            "colyseus.js": "^0.14.13",
            "isomorphic-ws": "^4.0.1",
            "moment": "^2.29.3",
            "socket.io": "^4.5.1",
            "ws": "^8.8.0",
            "ws-browser": "^11.4.8"
          },
          "optionalDependencies": {
            "bufferutil": "^4.0.6",
            "utf-8-validate": "^5.0.9"
          }
        }
        





        -
        Edité par chubbymarschmallow 22 juin 2022 à 9:56:08

        • Partager sur Facebook
        • Partager sur Twitter
          23 juin 2022 à 13:01:03

          Si tu es partit sur du php alors il va falloir t'intéresser aux websocket en php et plus du côté de nodejs, je ne dis pas qu'il faut du node js je disais que tu tentes d'utiliser des modules node donc tu aurais du partir sur du node en backend. 

          Si tu es partit sur du php  comme je t'ai dis il y a des choses comme Rachet fait pour. 

          • Partager sur Facebook
          • Partager sur Twitter

          yasakani no magatama

            23 juin 2022 à 14:27:58

            zvheer a écrit:

            Si tu es partit sur du php alors il va falloir t'intéresser aux websocket en php et plus du côté de nodejs, je ne dis pas qu'il faut du node js je disais que tu tentes d'utiliser des modules node donc tu aurais du partir sur du node en backend. 

            Si tu es partit sur du php  comme je t'ai dis il y a des choses comme Rachet fait pour. 


            Pourquoi si le projet est en PHP devoir faire du Websocket (WS) en PHP ?

            On peut très bien avoir un site classique avec du php et les WS fait avec NodeJS. De base Laravel permet de send des events au front et si on n'utilise pas un service externe comme Pusher c'est un serveur NodeJS qui est utilisé.

            Je connais des sites ou applications qui utilise plusieurs langage et techno différentes en fonction de ce qui est le mieux.

            Grafikart à fait un exemple de tchat : https://www.youtube.com/watch?v=tqUilb77yvA et ce qui est intéressant c'est qu'il y va progressivement.

            • Partager sur Facebook
            • Partager sur Twitter
              23 juin 2022 à 14:54:37

              Il n'est pas sous laravel ou en tous cas ne l'a pas spécifié, le tutoriel que tu as envoyé en suivant le lien mène sous un site Laravel. Je ne lui conseilles pas d'utiliser plusieurs techno qu'il ne maitrises pas.

              -
              Edité par zvheer 23 juin 2022 à 14:57:30

              • Partager sur Facebook
              • Partager sur Twitter

              yasakani no magatama

                23 juin 2022 à 15:16:16

                zvheer a écrit:

                Il n'est pas sous laravel ou en tous cas ne l'a pas spécifié, le tutoriel que tu as envoyé en suivant le lien mène sous un site Laravel. Je ne lui conseilles pas d'utiliser plusieurs techno qu'il ne maitrises pas.

                -
                Edité par zvheer il y a 13 minutes


                Il n'est pas obliger d'utiliser Laravel précisément, Si sont but est de comprendre, alors les vidéos peuvent permettent d'avoir une première approche. Je suis d'accord qu'il faut y aller par étape et de pas trop apprendre en même temps des nouvelles techno au risque de s'y perdre. Mais cela n'empêche pas de regarder pour avoir un exemple.

                En tout cas je n'indiquerai pas de changer pour NodeJS simplement parceque les websockets qui traite sont fait avec Nodejs alors qu'il a peut être déjà une app sous un autre langage (pas forcément PHP).

                -
                Edité par quenti77 23 juin 2022 à 15:17:24

                • Partager sur Facebook
                • Partager sur Twitter
                  23 juin 2022 à 15:25:35

                  Sous ce point je suis d'accord attendond donc son retour
                  • Partager sur Facebook
                  • Partager sur Twitter

                  yasakani no magatama

                  Question sur les websockets dans les sites web

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown