Bonjour !
Je suis en train de travailler sur un projet d'appli' smartphone utilisant socket.io.
Après avoir réalisé tout mes tests avec succès en local, je souhaites tester en conditions réelles. J'ai donc fait un transfère de port via l'interface de ma box numericable.
Lorsque je test depuis le PC sur lequel se trouve le serveur node.js, tout ce passe bien.
Lorsque je test depuis mon Android, j'obtient cette erreur:
xhr poll error
Voici le serveur:
Coté client:
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 // Require HTTP module (to start server) and Socket.IO var http = require('http'), io = require('socket.io'); // Start the server at port 5590 var server = http.createServer(function(req, res){ }); server.listen(5590); // Create a Socket.IO instance, passing it our server var socket = io.listen(server); // Add a connect listener socket.on('connection', function(client){ console.log('New client connected to the server!'); // Success! Now listen to messages to be received client.on('message',function(msg){ }); client.on('disconnect',function(){ console.log('Server has disconnected'); }); });
L'événement "connect_error" affiche donc "xhr poll error".
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 var socket = new io.connect('mon_ip_public:5590', {timeout: 5000}); // Add a connect listener socket.on('connect',function() { console.log('Client has connected to the server!'); }); // Add a connect listener socket.on('message',function(data) { console.log('Received a message from the server!',data); }); // Add a disconnect listener socket.on('disconnect',function() { console.log('The client has disconnected!'); }); // On connect error: socket.on('connect_error', function(err){ console.log('Connect error: ' + err); $("#content-error").html("Cannot connect to the server: " + err).fadeIn("slow"); });
Avez vous une idée de comment faire pour résoudre ce souci ?
EDIT:
J'ai trouvé la solution. Il suffit de rajouter le protocole ws:// devant l'adresse ip:
Code : Sélectionner tout - Visualiser dans une fenêtre à part var socket = new io.connect('ws://mon_ip_public:5590', {timeout: 5000});
Partager