nodejs、mongodb、socket.io、express、mongooseを利用するウェブアプリを作成しています。
サーバーを起動して、ローカルホストを参照するときにブラウザで必要なhtmlファイルを正しく取得できます。
私が抱えている問題は、socket.ioを機能させることです。私のサーバー側では、すべてが正常に機能しています。端末に「info--socket.iostarted」が表示されます。
しかし、ブラウザにネットサーフィンすると、ブラウザコンソールでこれを取得します
Failed to load resource: the server responded with a status of 404 (Not Found)
Uncaught ReferenceError: io is not defined
これは私がsocket.io.jsに接続する方法です
<script src="/socket.io/socket.io.js"></script>
私の地図の構造は次のようになります。
map
-app.js
-public
--index.html
-node_modules
--socket.io
--mongodb
--express
--jade
--mongoose
私が犯した間違いを誰かが知っていますか?
(これは実際にはここと同じ問題です:Node.js socket.io.jsが見つからないか、ioが定義されていません)
前もって感謝します!
編集: サーバー側の私のコードはこれです:
var app= require('express').createServer();
var io = require('socket.io').listen(app);
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/db');
app.listen(3030);
console.log("server started");
app.get('/',function(req,res){
res.sendfile(__dirname + '/public/index.html');
});
io.sockets.on('connection',function(socket){
console.log("connection made");
});
最初のログは端末に記録されますが(「サーバーが開始されました」)、2番目のログ(「接続が確立されました」)は記録されません。したがって、接続は確立されません。これは、クライアント側の「設定」が間違っていたためだと思いました。