Ich versuche, eine Live-Benutzer zählen auf meiner Website http://clickthebutton.herokuapp.com, die Express JS verwendet. Beim Versuch, socket.io zu installieren bekomme ich diesen Fehler:Express.js 'socket.io/socket.io.js 404'
GET /socket.io/socket.io.js 404 1.911 ms - 1091
Yes, I have used 'npm install socket.io --save'
Ich habe nach Antworten sah sich um, versuchte, sie und nichts geholfen hat. Wenn jemand denkt, dass er weiß, was passiert, würde eine Antwort sehr geschätzt werden! Hier ist mein Code:
app.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var io = require('socket.io')(app);
var routes = require('./routes/index');
var users = require('./routes/users');
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var server = app.listen(app.get('port'), function() {
console.log('server listening on port ' + server.address().port);
})
var io = require('socket.io').listen(server);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
index.ejs
<!-- socket.io -->
<script src="socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect();
</script>
</div>
</center>
</body>
Routen/index.js
var express = require('express');
var router = express.Router();
var redis = require('redis'), client = redis.createClient(secret, "secret"); client.auth("secret", function() {console.log("Connected!");});
var app = express();
var server = require('http').Server(app);
var http = require('http');
var io = require('socket.io').listen(server);
io.on('connection', function(socket){
console.log('a user connected');
console.log(Object.keys(io.sockets.connected));
});
io.on('connection', function (socket) {
console.log('Socket.io connected!')
});
I only copy/pasted the code that referenced socket.io
Dank!
Was ist dein Setup? Sie erwähnen eine öffentlich gehostete Site, dann zeigen Sie Code an, der nur auf localhost/127.0.0.1 hört. Außerdem hat der Code auf Ihren gehosteten Sites viele Verweise auf localhost: 3001 und port 3001, wenn der Code, den Sie eingefügt haben, den Port 8080 verwendet hat ... Stellen Sie bitte einen konsistenten Code und ein Live-Beispiel bereit. – jcaron
@jcaron Aktualisiert. –
Immer noch nicht konsistent mit dem, was Sie auf Ihrer gehosteten Website haben (wo der Fehler nicht einmal übereinstimmt). – jcaron