创建一个聊天服务器

首先,我们需要在 Node 中包含 TCP 模块,并创建一个新的 TCP 服务器

var net = require('net')
var chatServer = net.createServer()
chatServer.on('connection', function(client) {
client.write('Hi!\n');
client.write('Bye!\n');
client.end()
})
chatServer.listen(9000) 

代码第一行,我们加载了 net 模块。这个模块包含了 Node 需要的所有 TCP 功能。
接着,我们调用 net.createServer() 方法来创建一个新的 TCP 服务器。有了这
个服务器,我们需要用它做点儿事。这里调用 on() 方法来添加一个事件监听器。
每当有新的客户端通过网络连接接入服务器,就会触发 connection 事件,事件监
听器就会调用我们指定的函数。
连接事件在调用回调函数时,会传给我们新客户端所对应的 TCP socket 对象的引
用。我们把此引用命名为 client。调用 client.write(),就能发送信息给该客
户端。目前,我们只是简单地发送“ Hi!” 和“ Bye!”,然后调用 client.end() 方
法来关闭连接。就这么简单,我们的聊天服务器已经初露端倪了。最后,需要调用
listen() 函数,好让 Node 知道监听哪个端口。让我们马上测试一下吧。

我们可以使用 Telnet1(大多数操作系统都自带此程序)来连接新服务器进行测
试。首先,调用 node 命令并带上文件名来启动服务器。然后,打开 Telnet 连接到
localhost 的 9000 端口(这是我们在 Node 程序中指定的端口)。

window1:
[root@localhost chat]# node chat.js
runing at ::9000

window2:
 [root@localhost dome]# telnet 192.168.0.129 9000
Trying 192.168.0.129...
Connected to 192.168.0.129.
Escape character is '^]'.
hello
hi
Connection closed by foreign host.

到目前为止,我们创建了一个服务器,它能够接受客户端的连接,并且在断开连接
前发送了一小段内容。但这还不能称为聊天服务器,我们再来添加几个功能吧。首
先,需要能收到客户端发送的消息

var net = require('net')
var chatServer = net.createServer()
chatServer.on('connection', function(client) { 
 client.write('Hi!\n');
client.on('data', function(data) {
console.log(data)
})
})
chatServer.listen(9000)  

你可能感兴趣的:(新手nodej之路)