[英]Socket.io and Express3 - 404 on client request to /socket.io/socket.io.js
我在嘗試從我的Node服務器解析'/socket.io/socket.io.js'時收到404。 我無法確定原因。
我的服務器配置如下所示:
var express = require('express')
, engine = require('ejs-locals')
, app = express()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server);
// use ejs-locals for all ejs templates:
app.engine('ejs', engine);
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs'); // so you can render('index')
app.use(express.static(__dirname + '/public'));
//define routes
...
app.listen(3000);
//socket io
io.sockets.on('connection', function (socket) {
socket.on('set nickname', function (name) {
socket.set('nickname', name, function () {
socket.emit('ready');
});
});
socket.on('msg', function () {
socket.get('nickname', function (err, name) {
console.log('Chat message by ', name);
});
});
});
在客戶端我有這個:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
我在本地進行測試(端口:3000)。 套接字代碼基本上是從socket.io示例中刪除,以使某些工作正常。 我已經查看了其他帖子,似乎無法找到我出錯的地方。 有人可以幫忙嗎?
謝謝
得到它了!
HTTP服務器需要在端口上列出(在這種情況下為3000)。然后我刪除了app.listen(3000),因為地址已經在使用中並且不需要。
謝謝!
var express = require('express')
, engine = require('ejs-locals')
, app = express()
, http = require('http')
, server = http.createServer(app).listen(3000)
, io = require('socket.io').listen(server);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.