var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(80, function() {
console.log('listening on *:80');
});
这是index.js源码,
然后访问localhost
jquery找不到,socket.io.js倒是找到了。。。。
这是index.html引入部分
PHP中文网2017-04-17 14:53:25
ご質問は理解しましたが、2 つの質問があります
<オル>なぜ /socket.io/socket.io.js
が見つかるのでしょうか? これは、Socket.io
サービスが http サービスをリッスンしているためです。 、ルート http://localhost:<port>/socket.io/socket.io.js
が自動的に提供されます (実際にはすべての /socket.io
リクエストをインターセプトします)から始まり、リクエストされた socket.io.js
は socket.io-client/socket.io.js
に解析されるため、フロントエンドによって取得された js を確認できます。 , 実際には、これは socket.io
モジュールではなく、socket.io-client
モジュール内のファイルです)。外部の静的ファイル ディレクトリにコピーしたり、このサービスを手動で提供したりする必要はありません。
独自の /js/jquery-2.0.3.min.js
が見つからないのはなぜですか? この静的ファイル サービスではモジュールが提供されないため、自分で行う 手動で提供し、上記の index.js
コードをわずかに変更すると、結果は次のようになります。
//変更して、Express を提案します
var Express = require('express')
var app = Express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
// `jquery-2.0.3.min.js` ファイルが見つかるように静的ファイル サービスを提供します
app.use(express.static(__dirname));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('接続', function(ソケット){
console.log('ユーザーが接続しました');
});
// ポート 80 で直接リッスンしないことをお勧めします。ポート 8888 に変更します。
http.listen(8888, function() {
console.log('*:8888 でリッスンしています');
});
注: 80
ポートで直接リッスンしないことをお勧めします。他のポートでリッスンして、nginx
をハングアップすることもできます。リバース プロキシの場合、このアプローチはより穏やかかもしれません。 ポート 80
を直接監視するのは暴力的すぎます。個人的な意見ですが、参考になれば幸いです。