Ho il seguente server.js esecuzione:node.js: socket.io vs express.static
module.exports = server;
var express = require('express');
var fs = require('fs');
var server = express.createServer();
var port = 58000;
server.listen(port);
var io = require('socket.io').listen(server);
server.use(express.static('/', __dirname + '/../public'));
server.use(express.logger());
io.on('connection', function(client){
console.log('new client connected ' + client);
client.on('message', function(){
console.log('client wants something');
});
});
semplice server express.static per i file in una sottocartella/pubblico, più socket.io funzionalità. Con questa configurazione, ogni richiesta per il file 'socket.io.js' fallisce, cioè
http://localhost:58000/socket.io/socket.io.js
restituisce un errore 404 (file non trovato). Il file server statico funziona correttamente. Se uso semplicemente il modulo 'http' invece di 'esprimere' (commentando le righe express.static ed express.logger), socket.io.js viene pubblicato correttamente. Come posso combinare entrambe le funzionalità?
[email protected] potrebbe non essere stata una buona idea ... ora di lavoro – daaanipm
Oh, infatti, c'è un po 'grossi problemi con Express @ 3 per il momento, soprattutto sul router e middleware, hanno ci stiamo lavorando. Dovresti limitarti alla versione stabile (corrente è @ 2.5.9), se non hai intenzione di fork express.js – Tronix117