我正在製作一個使用nodejs,mongodb,socket.io,express和mongoose的web應用程序。
當瀏覽到我的本地主機時,我可以啓動我的服務器,並在瀏覽器中正確地獲取所需的html文件。
我的問題是讓我的socket.io工作。 在我的服務器端一切正常:我的終端上得到「info - socket.io started」。找不到socket.io.js
但衝浪到我的瀏覽器,當我得到這個在我的瀏覽器控制檯
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
有沒有人知道mistak e是我做的?
(它實際上是同樣的問題在這裏:Node.js socket.io.js not found or io not defined)
提前感謝!
編輯: 我在服務器端的代碼是這樣的:
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");
});
的第一個日誌,在終端得到記錄(「服務器啓動」),但第二個(「連接造」 )不會被記錄。所以連接不成。 我以爲這是因爲我的客戶端「設置」錯誤。
如果它是爲[Node.js的socket.io.js找不到或IO同樣的問題沒有定義](http://stackoverflow.com/questions/10563080/node-js-socket-io-js-not-found-or-io-not-defined),你有沒有嘗試過這個問題的答案? – phihag 2012-08-13 17:19:03
你可以在服務器端發佈有關Socket.IO安裝的代碼嗎?這裏的典型問題是Socket.IO沒有監聽文件請求(也就是設置錯誤)。沒有看到你的代碼,我們不能排除這一點。 – 2012-08-13 17:21:00
對我而言,這通常是由於未在域的根目錄下運行應用程序造成的。這意味着這工作正常(http://domain.com),但這會導致404客戶端代碼沒有一些修改(http://domain.com/path/to/app/。 – 2012-08-13 17:44:14