さて、node.jsにsocket.ioを使用して簡単なテストサーバーを設定しました。私の目標は、負荷分散条件と同期テストをテストするために、いくつかの異なるポートで同じサーバーを実行することです。ここでnode.js/socket.ioにロードされたページにポート番号を渡します。
サーバは次のようになります。
var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
fs = require('fs'),
port = process.argv[1]; // listen on port number passed via command line
app.listen(port);
function handler (req, res) {
console.log('request', {remotePort: req.connection.remotePort, remoteAddress: req.connection.remoteAddress, url: req.url});
// how do I pass the port number here?
fs.readFile(__dirname + '/chat.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading chat.html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
// do chatty stuff
});
質問です:chat.htmlにポート番号を取得する最も簡単な方法は何か(上記のコード内のコメントを参照)?ノードまたはfsでこれを行う方法はありますか? Expressをテンプレートでセットアップする必要がありますか?
ワンダー質問文字列をどのノードで処理させるかわかりません。ページが読み込まれたらjQueryでポートを張ってそれを選ぶことができますか?
ありがとうございました!
私はあなたがテンプレートを使用するお勧めします。 – Raynos
@レイノス - なぜですか?パフォーマンス/技術的利点は何ですか?他の可能性は何ですか? – Kato