Socket.io renvoie une erreur 404 avec Express + http

J'utilise: Node.js v7.1.0, socket.io 1.6.0, Express 4.14.0. Le serveur Socket.IO est hébergé avec:

class App { constructor(port) { this.app = express(); this.server = http.createServer(this.app); this.server.listen(port); this.app.use('/', new IndexRouter(this.server).router); } } class IndexRouter { /** @param server {Server} */ constructor(server) { this.router = express.Router(); this.socketManager = new SocketManager(server); // some routes here... } } class SocketManager { constructor(server) { this.sio = socketIo.listen(server); } } 

Côté client, j'ai: this.socket = io.connect('http://127.0.0.1:3000');

J'ai également essayé this.socket = io.connect(''); Mais a obtenu le même résultat: une erreur 404 à http://127.0.0.1:3000/_socket.io/ .

Ce que je trouve étrange, c'est que, dans une autre version de mon programme serveur, cela fonctionnait, et les demandes ont été faites à http://127.0.0.1:3000/socket.io/ place.

Aucun événement de "connexion" ou "erreur" dans Socket.IO n'est déclenché du tout; Pas dans le serveur, pas dans le client.

J'ai essayé de passer à différents ports. J'ai essayé de passer l'objet Express à Socket.IO directement. J'ai essayé la même chose sans la structure de classe.

Qu'est-ce qui cause cette erreur 404? Pourquoi le client demande /_socket.io/ et / / /socket.io/ ?