日期:2014-05-16 浏览次数:20513 次
声明:教程来自《Node即学即用》。源码案例均出自此书。博文仅为个人学习笔记。
第一步:创建一个聊天服务器。
首先,我们先来写一个Server:
var net = require('net')
var chatServer = net.createServer()
chatServer.on('connection',function(client){
client.write('connection~~~\n')
client.end()
})
chatServer.listen(2333)
console.log('Server')
第二步:监听所有的连接请求
服务器源代码:
var net = require('net')
var chatServer = net.createServer()
chatServer.on('connection',function(client){
client.write('Hello~~\n')
client.on('data',function(data){
console.log(data);
})
})
chatServer.listen(2333)
console.log('Server') 
但是这里有个问题:返回的内容均为乱码,因为JS不能很好的处理二进制数据,所以Node增加了一个buffer库来帮助服务器。
打印的字符实际上是16进制的字节数据,可以保持二进制的格式,因为TCP和Telnet都能处理它们。
第三步:客户端之间的通信:
var net = require('net')
var chatServer = net.createServer() //服务器
var clientList = [] //客户端数组
chatServer.on('connection',function(client){
client.write('Hello~Client~\n')
clientList.push(client)
client.on('data',function(data){
for (var i = 0; i < clientList.length; i++) {
clientList[i].write(data)
};
})
})
chatServer.listen(2333)
console.log('Server')

下一步,改进消息发送和显示的方式,让页面更友善一些。