2012-06-01 26 views
2

這絕對是一個非常幼稚的問題,因爲我是新來Node.js的運行一個非常簡單的socket.io示例時感到困惑?

我只是運行從網站上很簡單的第一個例子socket.io: http://socket.io/#how-to-use

客戶端:index.html的:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

服務器:app.js:

var app = require('http').createServer(handler) 
    , io = require('socket.io').listen(app) 
    , fs = require('fs') 

app.listen(8080); 

function handler (req, res) { 
    fs.readFile(__dirname + '/index.html', 
    function (err, data) { 
    if (err) { 
     res.writeHead(500); 
     return res.end('Error loading index.html'); 
    } 

    res.writeHead(200); 
    res.end(data); 
    }); 
} 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

從我的理解我認爲會發生什麼事是,當服務器收到來自客戶端的請求,將通過客戶端發出輸出的數據到控制檯,它這樣做,但後來它也應該發送到客戶端的數據{hello: 'world'},當客戶端接收,它也應該記錄數據到控制檯?在終端控制檯上,每個請求只能看到{my: 'data'}。服務器沒有正確地將數據發送回客戶端,或者我正在查看錯誤的地方?

顯然我覺得我對一些非常基本的東西感到困惑,但是當告訴客戶端在客戶端javascript中執行console.log時,輸出是否應該顯示在執行服務器程序或其他東西的終端上?如果我需要檢查客戶端控制檯上的輸出,我應該在瀏覽器中查找哪些內容?

希望有人能告訴我這個基本概念,我用Google搜索了很多,但我相信這只是太簡單,大部分只是假設的人都知道它,所以我沒有得到多少。

+1

這將是在瀏覽器中。如果你使用的是Chrome,你可以使用鍵盤快捷鍵opt + cmd + j(我不記得windows的快捷方式......),在Firefox中你可以使用Firebug。 – subhaze

+0

謝謝!我明白了,所以我仍然需要弄清楚如何在Ubuntu上安裝Firebug,這會讓我的海龜速度計算機變慢,我可能會用alert來打印出來。再次感謝您的澄清! – Superziyi

+0

沒有問題。如果您要做大量日誌記錄,您可以在頁面底部設置一個固定的div,並將輸出添加到它的innerHTML中。每次都不會痛苦地點擊'OK':) – subhaze

回答

4

在Chrome瀏覽器窗口的任意位置 - >右擊菜單 - >檢查元素。這會在主窗口的底部彈出一個窗口。從「元素」,「資源」,「網絡」選項卡列表中...導航到「控制檯」。所有控制檯日誌均顯示

+1

或使用Ctrl + Shift + j – Shekhar