IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Un serveur JS/AJAX fluide sans nodeJS [API HTML5]


Sujet :

JavaScript

  1. #1
    Futur Membre du Club Avatar de Benjiben45
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Un serveur JS/AJAX fluide sans nodeJS
    Bonjour tout le monde .

    Je me permet d'ouvrir un sujet , car je suis à la recherche d'information pour un petit serveur de jeu (en temps réel).

    En plus clair :
    Je développe un petit Cours/Jeu/OpenSource et j'aimerais y implémenter un mode de jeu Online en temps réel pour pouvoir y jouer à plusieurs.

    Voila ma question :
    Je sais que NodeJS est la pour ça : Mais je n'ai pas de serveur approprié.

    Est-ce que si je développe un code pour actualiser/recevoir des données en AJAX directement de mon serveur et de ma BDD MySql le jeu serait il asser fluide ?

    Je voudrais juste recevoir des info du genre :
    Position x , Position Y de chaque joueur en temps réel.
    Quelques variables du genre le pseudo , une var type String de l'image du joueur, la vie etc...

    Est-ce que AJAX me permettrais de communiquer asser rapidement avec mon serveur pour récupérer ces infos ?
    ( oui il faut que j'actualise aussi mes données vers le serveur donc gérer l'envoi de données aussi )

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut lorsque tu dit :
    Citation Envoyé par Benjiben45
    Je sais que NodeJS est la pour ça : Mais je n'ai pas de serveur approprié.
    Quel est le serveur dans ce cas, que dispose tu : un hébergement avec quel possibilité en terme de langage côté serveur PHP, ASP, JSP ?
    Il y a pas que NodeJs côté manipulation des websocket c'est trois langage pourrait te donner les mêmes avantages, que passé par des communications pas du get post qui est plus lourd est surtout moins fluide.
    Par exemple niveau wss installation SSL ou ws tu peux installer le server en PHP https://github.com/headmax/PHP-Websockets réalisés par plusieurs devs.
    Un simple client websocket : https://codepen.io/headmax/pen/yvNQeK

  3. #3
    Futur Membre du Club Avatar de Benjiben45
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Bonjour , merci de ta réponse c'est super !!! Un grand merci !!!

    Citation Envoyé par headmax Voir le message
    Salut lorsque tu dit :
    Quel est le serveur dans ce cas, que dispose tu : un hébergement avec quel possibilité en terme de langage côté serveur PHP, ASP, JSP ?
    Mon hebergement est avec LWS mutualisé ( forfait : perso ) ,
    sur un serveur apache linux ,
    et PHP ( le reste je ne sais pas et je ne code pas ces langages :S ).

    Ensuite je viens de tester le simple client websocket : C'est tout juste ce qu'il me faut !
    Par contre ( je suis vraiment nul je pense ),
    Meme avec le code source , et le websocket qui pointe vers mon serveur , je n'arrive pas à me connecter )=

    Bon j'ai essayer pleins de manipulations différentes en fouillant sur le net , en installant des librairies diverses , le code source sur GitHub que tu m'a envoyé mais je n'y comprend rien --'

    Que faut il que j'installe sur mon hebergement pour que ce websocket, ( sans Node.js ) Fonctionne ?

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Bonsoir @Benjiben45, pour installer un git c'est assez simple dans la mesure que tu as un accès ssh sur ta machine linux :
    soit : (ex: si ton domain est pierpoljack.com, tu créer un sous domaine api.pierpoljack.com) chez ton hébergeur ensuite tu te connecte en ssh sur la machine :
    Code sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    //tu creer un vhost pour ton nouveau sous domaine
    sudo cp cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/api.pierpoljack.com.conf
    //tu edit ton vhost pour mettre les bons accès et directives
    sudo nano /etc/apache2/sites-available/api.pierpoljack.com.conf
    <VirtualHost *:80>
            ServerName api.pierpoljack.com
     
            ServerAdmin webmaster@pierpoljack.com
            DocumentRoot /var/www/html/api.pierpoljack.com
     
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    //ctrl +x  et O pour enregistrer (oui)
    //en va dans notre root  d'apache
    cd /var/www/html/
    //on créer notre dossier nommé api.pierpoljack.com dans lequel on va mettre les fichiers du git qu'on vient de dupliquer
    sudo git clone https://github.com/headmax/PHP-Websockets.git api.pierpoljack.com
    //on active notre nouvelle api
    sudo a2ensite api.pierpoljack.com.conf
    //on recharge les fichiers de config d'apache
    sudo /etc/init.d/apache2 reload  
    //ou sudo service apache2 reload ou sudo apachectl reload

    Tu peux ouvrir et tester ton nouveau serveur websocket :

    Code sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //on va dans notre site api
    cd api.pierpoljack.com/
    //on lance le serveur de test
    php testwebsock.php
    Server started
    Listening on: 0.0.0.0:9000
    Master socket: Resource id #6
    On voit que notre serveur de websocket écoute bien sur le port 9000
    on n'a plus qu'a tester avec le client si tout est bon
    http://api.pierpoljack.com/client.html
    Code sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //on voit bien que notre client est bien connecté au serveur de socket sur le terminal
    Server started
    Listening on: 0.0.0.0:9000
    Master socket: Resource id #6
    Client connected. Resource id #7

  5. #5
    Futur Membre du Club Avatar de Benjiben45
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Merci headMax
    Salut , et un grand merci pour ton aide !
    Bon j'ai essayer de me connecter en ssh ( ce qui est tout nouveau pour moi ^^ ) j'adore apprendre

    Après quelques tentatives et recherches sur le net , je ne peut malheureusement pas me connecter dessus en ssh :/

    Pas de soucis , j'ai donc essayer de coder sur echo.websocket.org , et je me suis dit :
    - Hé ! Peut être que je peut trouver des petits serveurs gratuits juste pour tester ?
    j'ai trouver 'heroku' et je me suis mit dessus ^^

    Bon je vous explique pas la galère pour comprendre comment ça fonctionne les sockets ^^ ca me faisait penser à l'époque ou j'ai commencer à coder en C++ tout seul sans aucune connaiscances en prog )=
    Mais bon , après avoir essayer encore pleins de librairies , je suis passer sur node.js ( Je n'ai jamais travailler avec mais c'est super ouf ! )
    J'ai utiliser la librairie Socket.IO , créer un premier template de chat pour m'exercer et modifier deux trois fonctions pour que l'on puisse envoyer diverses infos en plus !

    Maintenant que j'ai commencer à me faire la main , je suis passé a mon template pour envoyer certaines variables plus complexes , et j'utilise le JSON pour ça , et un peu d'orienté Objet pour la table des utilisateurs connéctés : (Avec leurs ID unique , si ils se déconnectent on retire un user,
    on actualise un tableau JSON avec l'id , socked.id , le pseudo , la variable Position X et Y ...
    c'est TOP mais je me suis vraiment creusé la tête !

    Merci en tout cas headMax tu m'as vraiment aidé:

    je suis en train de faire un jeu sur navigateur avec JS/PHP OPENSOURCE, et compatible sur navigateur mobile , sur lequel j'écris un cours complet

    j'ai mon premier template qui est (déjà jouable) mais on ne joue pas online il y à juste quelques fontions de base avec Ajax par exemple pour ajouter le score à la fin de la partie , une partie utilisateur , une table des scores .....
    La grace à toi je vais pouvoir mettre à jour mon deuxième template pour un jeu online ( pour l'instant c'est juste un canvas avec des carrés qui s'actualisent avec la position des joueurs mais jsuis pas peu fier )
    *

    [PS]: désolé pour l'orthographe ^^

  6. #6
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Tant mieux je pense que c'est plus adapté et au moins 100% js , tu as bien compris socket.io est l'utilisation sa propre génération d'id unique les differents attributes connected ... assez simple pour retiré de la liste des personnes connectés, tu pourras facilement géré le jeux avec cette lib, j'ai eu l'occasion de jouer entre socket.io et webgl pour un jeux en 3D le même genre qu'on retrouve sur playcanvas "tank". https://playcanv.as/p/y4412Fkr/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Comment envoyer au serveur une seul info sans recharger la page
    Par Ekimasu dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2007, 13h10
  2. 2 serveurs SQL sur même SAN
    Par questar dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2007, 17h55
  3. [AJAX] classement sans modification de la page
    Par franfr57 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/04/2007, 11h39
  4. [AJAX] Cherche Chat php / ajax / XMLHTTPRequest sans SQL
    Par fabien14 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/02/2007, 13h23
  5. [AJAX] charger images du serveur avec ajax
    Par Tail dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/02/2007, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo