2
我有以下設置,根據文檔:如何正確設置socket.io端口?獲得socket.io.js 404
客戶端:
<script src="/socket.io/socket.io.js"></script>
var socket = io.connect(); // TIP: .connect with no args does auto-discovery
服務器端:
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user'),
http = require('http'),
path = require('path');
app = express(),
server = http.createServer(app).listen(80),
io = require('socket.io').listen(server);
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
爲什麼我收到
GET http://localhost:5000/socket.io/socket.io.js 404 (Not Found)
我試過切換到server = http.createServer(app).listen(process.env.PORT || 3000),
然後我得到warn: error raised: Error: listen EACCES
和相同的404.我在這裏錯過了關於端口使用情況的內容?
沒有足夠的向上票世界在此表示感謝!我現在一直在努力...只有一個問題,我認爲套接字需要自己的端口,這是不正確的?它必須運行相同的應用程序? – ilyo
我用'sudo'在端口80上運行它 – ilyo
我不建議sudo'ing nodejs進程。取而代之的是,使用像nginx或haproxy這樣的前端代理服務器(關於該主題的教程很多)。 – schaermu