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

Langage PHP Discussion :

WebSocket erreur socket_bind()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut WebSocket erreur socket_bind()
    bonsoir,
    j'ai suivi cette documentation pour utiliser un WebSocket, mais je bloque dans l'étape -> Tapez : "php -q serveur.php" dans l'invite de commande.
    quand je tape la commande, je reçois :
    Warning: Module 'openssl' already loaded in Unknown on line 0
    PHP Warning: socket_bind(): Host lookup failed [11004]: Le nom demandل est vali
    de, mais aucune donnلe du type requise nْa لtل trouvلe.
    in C:\xampp\htdocs\websocket\classes\serveur.php on line 82
    quelqu'un a déjà eu ce problème?

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    maintenant je me suis débarrassé de l'erreur Warning: Module 'openssl' already loaded in Unknown on line 0, il fallait commenter ;extension=php_openssl.dll dans le php.ini.
    maintenant j'ai un autre problème, après avoir taper php-q path/to/myserver/serveur.php, la websocket est bien démarrée mais j'ai ça (image en bas) dans le shell de xampp.
    Pièce jointe 224656
    qu'est ce que je dois faire pour corriger cette erreur?

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Montres nous cette ligne 19 qui pose problème.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    avant que je fasse la modification, la ligne été :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    socket_select($changed,$write,$expect,0,1000000);
    tout ce que j'ai fais, c'est remplacé la ligne par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $write=NULL;
    $expect=NULL;
    $num_socket=socket_select($changed,$write,$expect,0);
    maintenant je n'ai plus d’exception, mais quand je lance le projet dans le navigateur via localhost:8080 puis remplire la zone de texte "Pseudo" puis écrire un message et tester, la console me retourne une exception de websocket.js:
    Code error : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    websocket.js:58 Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.()
     
    VM864:35 WebSocket connection to 'ws://localhost:8080/websocket/classes/serveur.php' failed: WebSocket opening handshake timed outWrappedWebSocket @ VM864:35WebsocketClass @ websocket.js:8(anonymous function) @ websocket.js:64
    Pièce jointe 224673Pièce jointe 224674

    websocket.js ligne 8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.socket = new WebSocket(host);
    websocket.js ligne 58
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.socket.send('{"action":"ctrl/chat/out", "msg":' + JSON.stringify(message) + '}');
    websocket.js ligne 64
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var socket = new WebsocketClass('ws://localhost:8080/websocket/classes/serveur.php');   /*192.168.0.1*/

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    le network de l'outil de développement de chrome me donne cette image :
    Pièce jointe 224749
    Normalement le socket est connecté non? si c'est oui pourquoi alors je ne reçois pas l'alert "connexion ouverte" ?

    websocket.js :
    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    var uId = '';
    var button = document.getElementsByClassName('sii-chat-send')[0];
    var messageInput = document.getElementsByName('sii-chat-message')[0];
    var buttonUser = document.getElementsByClassName('sii-chat-login')[0];
    var contentMessage = document.getElementsByClassName('sii-chat-content')[0];
     
    var WebsocketClass = function(host){	
    	this.socket = new WebSocket(host);
    	this.console = document.getElementsByClassName('console')[0];
    };
    WebsocketClass.prototype = {
    	initWebsocket : function(){
    		var $this = this;
    		this.socket.onopen = function(){
    			$this.onOpenEvent(this);
    			alert("connexion ouverte");
    		};
    		this.socket.onmessage = function(e){
    			$this._onMessageEvent(e);
    		};
    		this.socket.onclose = function(){
    			$this._onCloseEvent();
    		};
    		this.socket.onerror = function(error){
    			$this._onErrorEvent(error);
    		};
    		this.console.innerHTML = this.console.innerHTML + 'websocket init <br />';
    	},
    	_onErrorEvent :function(err){
    		console.log(err);
    		this.console.innerHTML = this.console.innerHTML + 'websocket error <br />';
    	},
    	onOpenEvent : function(socket){
    		console.log('socket opened');
    		this.console.innerHTML = this.console.innerHTML + 'socket opened Welcome - status ' + socket.readyState + '<br />';
    	},
    	_onMessageEvent : function(e){
    		e = JSON.parse(e.data);
     
    		if(e.msg.length > 0) e.msg = JSON.parse(e.msg);
     
    		contentMessage.innerHTML = contentMessage.innerHTML 
    			+ '&gt;<strong>' + e.msg.from + '</strong> : ' + e.msg.message + '<br />';
    		contentMessage.scrollTop = contentMessage.scrollHeight;
    		this.console.innerHTML = this.console.innerHTML + 'message event lanched <br />';
    		this.console.scrollTop = this.console.scrollHeight;
    	},
    	_onCloseEvent : function(){
    		console.log('connection closed');
    		this.console.innerHTML = this.console.innerHTML + 'websocket closed - server not running<br />';
    		uId = '';
    		document.getElementsByName('sii-chat-name')[0].value = '';
    		messageInput.disabled = 'disabled';
    		button.disabled = 'disabled';
    	},
    	sendMessage : function(){
    		var message = '{"from":"' + uId + '", "message":"' + messageInput.value + '"}';
    		this.socket.send('{"action":"ctrl/chat/out", "msg":' + JSON.stringify(message) + '}');
    		messageInput.value = '';
    		this.console.innerHTML = this.console.innerHTML + 'websocket message send <br />';
     
    	}
    };
    var socket = new WebsocketClass('ws://127.0.0.1:8080/websocket/classes/serveur.php');//192.168.0.1/ 127.0.0.1
    //var url='ws://localhost:8080/websocket/classes/serveur.php/echo'
    //	, socket=new WebSocket(url);
    if(button.addEventListener){
    	buttonUser.addEventListener('click', function(e){
    		e.preventDefault();
    		socket.initWebsocket();
    		//initialWebsocket(socket);
    		uId = document.getElementsByName('sii-chat-name')[0].value;
    		messageInput.disabled = '';
    		button.disabled = '';
    		return false;
    	}, true);
    	button.addEventListener('click',function(e){
    		e.preventDefault();
    		socket.sendMessage();
    		return false;
    	}, true);
    } else{
    	console.log('votre navigateur n\'accepte pas le addevenlistener');
    }

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    aucune piste a suivre?

Discussions similaires

  1. Erreur connexion websocket dans Glassfish 3.1.2
    Par Anton46 dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 04/06/2013, 20h53
  2. [websocket / firebug] Eviter / gérer erreur déconnexion
    Par Squalthor dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/01/2013, 19h38
  3. Websocket, coté server : erreur du handshake et du getheaders
    Par vinze60 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 05/05/2012, 13h15
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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