日期:2014-05-16 浏览次数:20438 次
声明:教程来自《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')
下一步,改进消息发送和显示的方式,让页面更友善一些。