0

我刚刚创建了一个 node.js 聊天应用程序.. 但该应用程序没有加载。代码是非常基本的 node.js 聊天应用程序:

// Load the TCP Library
var net = require('net');

// Keep track of the chat clients
var clients = [];

// Start a TCP Server
net.createServer(function (client) {

    console.log("Connected!");

    clients.push(client);

    client.on('data', function (data) {
        clients.forEach(function (client) {
            client.write(data);
        });
    });

}).listen(5000);

// Put a friendly message on the terminal of the server.
console.log("Chat server is running\n");

编译后,我在 chrome 浏览器中编写,localhost:5000但页面一直在加载,永远不会完成。

但是,以下代码可以完美运行:

// Load the TCP Library
net = require('net');

// Start a TCP Server
net.createServer(function (client) {
    client.write("Hello World");
    client.end();
}).listen(5000);


我在我的电脑上运行 Windows 7 64 位,并且我使用的是 chrome。

提前致谢!

4

3 回答 3

2

您正在使用该net模块创建 TCP/IP 服务器,但您正在使用 Web 浏览器使用 http 协议访问它。

这彼此不匹配。

尝试使用telnet例如连接到您的服务器,一切都应该没问题。

或者,如果您希望能够使用网络浏览器进行连接,则需要使用http模块而不是net模块。

于 2013-02-12T21:01:32.037 回答
1

网络库如果用于 TCP,而不是用于 HTTP。如果您使用 TCS,您应该能够使用 telnet 访问您的聊天,但不能使用浏览器。

这是一个关于如何为 HTTP 编写一个示例(来自http://nodejs.org/

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
于 2013-02-12T21:02:14.203 回答
1

打开 tcp 连接时不要用浏览器测试。

只需 telnet localhost 5000在您的控制台中进行测试。

于 2013-02-12T21:07:33.660 回答