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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

WebSocket API et serveur php


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut WebSocket API et serveur php
    Bonjour à tous,

    Alors voilà en cherchant une méthode alternative à node.js, je tombe bien évidement sur une partie de php que j'avais aperçu mais jamais utilisé, les sockets.

    J'ai donc regardé un peu sur notre ami Google, et ait trouvé diverses sources et tuto me permettant d'ouvrir des sockets, et donc de créer des serveurs sur mon local et mon dédié avec des ports précis en PHP, ainsi de pouvoir les utiliser via le "Web Socket API" en cours de standardisation par le W3C.



    Très bien fait, le premier que j'ai réussi à mettre en place :
    http://html5professor.com/tutoriels-7-11-21.html

    Un peu de doc,
    http://php.net/manual/fr/ref.sockets.php
    http://php.net/manual/fr/sockets.examples.php

    me menant vers https://github.com/Devristo/phpws/blob/master/README.md

    mais aussi vers :
    http://php.net/manual/fr/ref.stream.php

    à ce niveau je m’aperçois comme je l'imaginais que l'on peut passer par udp et non par TCP non plus par l'extension SOCKET
    http://www.unixguide.net/network/socketfaq/5.1.shtml


    http://www.openrpg.fr/tutoriel/94-comment-utiliser-un-systeme-de-websocket

    http://stephaneey.developpez.com/tutoriel/php/sockets/#L3


    et les deux dernier ( non exhaustif ), qui me rassure quand je me pose des questions sur les "encodages" choisis par les exemples cité plus haut, qui en fait doit être une question tout simplement de norme dans le temps.

    http://stackoverflow.com/questions/1...ith-php-server

    http://en.wikipedia.org/wiki/WebSocket


    Jusque-là tout va bien me dirait vous, j'ai réussi à me faire une petite idée de ce qu'est un socket, mais j'avoue ne pas bien comprendre ce qui se passe dans le tuyau, et comment il serait optimum dans une version minimal de faire marcher tout ça. Pour être un peu plus précis ma première question concerne (dans l'exemple rcf et Wikipédia) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GET /mychat HTTP/1.1
    Host: server.example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
    Sec-WebSocket-Protocol: chat
    Sec-WebSocket-Version: 13
    Origin: http://example.com
    Server response:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
    Sec-WebSocket-Protocol: chat
    A quoi sert réellement qui ? et comment bien les utiliser en vue éventuel d'optimiser la sécurité du service?

    Deuxièmement : extension SOCKET, Fonctions sur les flux est-ce que l'un vaut mieux que l'autre, ou est-ce tout simplement totalement différent?

    Troisièmement : y a-t-il une bonne pratique à appliquer pour la gestion de la création des serveurs via les sockets?


    J’espère sincèrement que ce post aura un minimum de succès et de réponse, et vous remercie d'avance de vos commentaires.
    Conception / Dev

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    donc , après réflexion, il semble possible de se diriger vers 2 tcp:

    hybi 10 : bien , relation vers RFC 6455 , notons des compléments, et in-compléments;

    voila , j’insère du code, mais je veux comprendre tous les enjeux, sachant, que l'idéal n'est pas la, et peu être supporté en php5 puis php5.4; ma démonstration consiste en un html5 web 2 ;

    function hybi10Decode($data) {

    }

    entre deux j’évolue, et ai trouvé un lien ou deux décrivant la norme :

    http://updates.html5rocks.com/2011/0...ocket-protocol


    http://jlectronique.org/Websockets.htm

    http://tools.ietf.org/html/rfc6455

    http://www.iana.org/assignments/websocket/websocket.xml



    http://tools.ietf.org/html/rfc6455#section-4.4
    Conception / Dev

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 154
    Points : 282
    Points
    282
    Par défaut Ratchet
    Salut,
    je sais pas si tu continue enfin voilà, je me pose pas mal de question comme toi, et j'ai trouvé ça, qui m'a l'air plutôt intéressant, plus particulièrement le support du sous-protocole wamp:

    Ratchet

    As-tu essayé? Sinon quel est ton retour pour ce que tu as essayé?
    @+
    Piero

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    de mon point de vue; j’essaie de bien comprendre ce qui passe dans les tuyaux...

    je regarde ton lien de plus prêt..
    Conception / Dev

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 154
    Points : 282
    Points
    282
    Par défaut
    Dis-moi j'ai relu tes posts en diagonale, et le moins qu'on puisse dire, c'est que c'est pas très clair... Tu serais pas du genre à vouloir te compliquer la vie?
    Dans ton premier post tu demande:
    y a-t-il une bonne pratique à appliquer pour la gestion de la création des serveurs via les sockets?
    Cette bonne pratique s’appelle KISS, ou bien ne pas réinventer la roue. Les sockets c'est assez chiant, j'en ai bouffé, c'est plutôt bas niveau et orienté réseau, bref c'est pas ce qu'on a l'habitude de faire en php, alors pour ne pas se compliquer la vie, on peut (commencer par) utiliser des "trucs tout faits". Note que ces "trucs tout faits" ne t'enlèvent pas le côté intéressant, mais bien au contraire, le côté chiant. D'ailleurs parmi les liens que tu donne, il y a également des "trucs tout faits". Vu comment tu semble "patauger", je ne saurai qu'insister pour t'encourager à utiliser un "truc tout fait", avant de faire le tiens.

    @+
    Piero

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    bpiero : Je crois que tu a tout a fait raison ! +1
    Conception / Dev

  7. #7
    Membre du Club
    Profil pro
    Developpeur PHP Magento e-commerce
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Developpeur PHP Magento e-commerce
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 51
    Points
    51
    Par défaut
    Il existe également php-io ( https://github.com/gplanchat/php-io ) qui permet à l'heure actuelle de monter un serveur HTTP+WebSocket avec la possibilité de lancer des requêtes vers MySQL.

    Ce projet exploite les capacités de l'extension php-uv (un binding vers libuv, le socle technique de node.js) et de mysqli+mysqlnd pour créer des applications totalement asynchrones.
    Le fait d'utiliser libuv plutôt que libev contrairement à d'autres solutions permet de pouvoir faire fonctionner l'application sur GNU/Linux, OS X et Windows.

Discussions similaires

  1. [PHP 5.4] Tentative de création serveur PHP => WebSocket API [HandShack]
    Par mikadev dans le forum Langage
    Réponses: 0
    Dernier message: 19/11/2014, 21h26
  2. Serveur PHP websocket AVEC multi processus
    Par aoemaster dans le forum Langage
    Réponses: 0
    Dernier message: 06/03/2012, 04h33
  3. Comment exécuter une API windows via php ?
    Par mikemead dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/03/2006, 10h19
  4. [EasyPHP] [Wamp] Serveur PHP sur MAC
    Par Amnesiak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/11/2005, 17h13
  5. Probleme d'envois de mail serveur PHP/ASP
    Par oulahoup dans le forum ASP
    Réponses: 2
    Dernier message: 23/08/2005, 14h38

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