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引入部分
ご質問は理解しましたが、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
コードをわずかに変更すると、結果は次のようになります。注:
80
ポートで直接リッスンしないことをお勧めします。他のポートでリッスンして、nginx
をハングアップすることもできます。リバース プロキシの場合、このアプローチはより穏やかかもしれません。 ポート80
を直接監視するのは暴力的すぎます。個人的な意見ですが、参考になれば幸いです。