net.createServer()上的回调被调用两次

时间:2014-07-14 21:01:44

标签: node.js

我正在关注this tutorial上的教程。这是代码:

var net = require('net')

var chatServer = net.createServer()

chatServer.on('connection', function(client) {
client.write('Hi!\n');
client.write('Bye!\n');
console.log("got msg from http");  //added
client.end()
})

chatServer.listen(9000)

我在console.logbye

之间放置了client.end()

当我运行它并点击端口9000时,console.log被输出两次而不是一次。

got msg from http
got msg from http
谁知道为什么?

由于

1 个答案:

答案 0 :(得分:1)

我猜你正在使用浏览器来测试你的服务器。您所看到的是两个不同的传入HTTP请求。尝试以下代码,您可能会看到有两个传入的HTTP请求:

var net = require('net')

var chatServer = net.createServer()

chatServer.on('connection', function(client) {
    client.write('Hi!\n');
    client.write('Bye!\n');

    console.log("got msg from http");  //added

    client.on('data', function (data) {
        console.log('data: \n%s', data)
    });

    client.end()
})

chatServer.listen(9000)

这两个请求应为GET /GET /favicon.ico,favicon.ico是显示在浏览器标签和书签等上的图标。