2012-02-29 14 views
2

我已經使用了的NodeJS回聲服務器的基本示例,並添加一個遞增計數器:爲什麼NodeJS託管頁面的增量計數器在刷新時會有所不同?

var net = require('net') 
var server = net.createServer() 
var counter = 0 

server.on('connection', function(conn) { 
    console.log('Got a connection...')     // write to the console 
    conn.end('Hello client: ' + counter++ + '\n')  // write to the client 

conn.on('data', function(data) { 
    console.log('Data: ' + data)      // log output contains header details 
    }) 
}) 

server.listen(8089) 

頁面加載導航到本地主機來完成:在瀏覽器8089 - 沒有特殊的客戶端連接的代碼或其他任何東西。

在初始加載時,計數爲0.在重新加載頁面時,計數有時是2,3,4。在下一次加載時,計數增加2到4之間看似不同的計數。我最初認爲我使用的端口可能已經被其他一些進程所困擾。改變了端口 - 相同的結果。

我看到一個匹配那個數字的日誌回聲。

有人可以解釋爲什麼這是?

+0

沒什麼特別的。只需瀏覽器加載IP /端口。 – ElHaix 2012-02-29 19:59:02

+0

是的,這證明你不明白這裏發生了什麼。 – jcolebrand 2012-02-29 20:13:52

+0

瀏覽器如何連接到TCP服務器? :\ – Raynos 2012-02-29 20:25:49

回答

4

最有可能是瀏覽器請求/favicon.ico。好奇你爲什麼使用低級網絡庫而不是http庫來創建服務器。在使用http服務器時,您可以明確地忽略/favicon.ico請求並防止它們影響您的計數器。

+0

謝謝本。只需進入NodeJS並找出它。通過Telnet連接時按預期工作。 – ElHaix 2012-03-01 16:07:23

相關問題