web-dev-qa-db-fra.com

Impossible d'obtenir /socket.io/?EIO=3&transport=polling&t=LdmmKYz

J'ai un problème avec mon serveur node.js et ma communication ionic 2 avec socket.io (websocket)).

Mon ionic envoie cette erreur:

Cannot GET /socket.io/?EIO=3&transport=polling&t=LdmmKYz

et c'est mon code, je n'ai pas trouvé mon erreur.

mon code node.js (en utilisant express):

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.use( (req, res, next) => {
   res.header("Access-Control-Allow-Origin", "http://localhost:8100"); //The ionic server
   res.header("Access-Control-Allow-Credentials", "true");
   res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
   next();
});
var port = Number(process.env.PORT || 8810);

io.on('connection', function (socket) {
    console.log('ping-pong started');
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

et voici le code d'application ionic 2 (à l'intérieur du constructeur):

this.connect = () => {
    this.socket = io('http://localhost:8810');
    console.log('socket started');

    this.socket.emit('connect', {data: 'data'});
        this.socket.on('news', (data)=>{
        console.log(data);
       this.socket.emit('my other event', { my: 'data' });
    });
}
this.connect();

Qu'est-ce que je rate?

10
noam aghai

J'ai trouvé mon problème!

mon problème était sur le code du serveur:

var server = app.listen(8810)
var io = require('socket.io').listen(server);

c'était juste le problème.

J'avais besoin de définir où le socket.io écoute sans lui le socket a échoué.

changez-le et l'erreur disparaîtra.

18
noam aghai

Essayez ceci dans l'ordre exact si vous utilisez express 4.

var express = require('express');
var app = express();
var server = app.listen(8810);
var io = require('socket.io').listen(server);

Reportez-vous à la référence de l'API ici http://expressjs.com/en/4x/api.html

7
Ananda