2

ドキュメントによると、次の設定があります。

クライアント側:

<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),bu に切り替えてみたところwarn: error raised: Error: listen EACCES、同じ 404 になりました。ポートの使用についてここで何が欠けていますか?

4

1 に答える 1

8

特別なアクセス許可がないと、ポート 80 にサーバーを作成できません。また、別の補足として、2 つのサーバー (ポート 80 に 1 つ、ポート 3000 にもう 1 つ) を作成しようとしています。

私がプロジェクトに使用しているもの(の一部)は次のとおりです。

var express = require('express')
  , app = express()
  , server = require('http').createServer(app)
  , sio = 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')));
});

// configure your socket.io instance here

server.listen(app.get('port'), function() {
  // server started
});
于 2013-01-16T08:11:11.863 に答える