[NodeJS]使用Node.js写一个简单的在线聊天室
发布时间:2017-03-26 11:17
本文关键词:Node即学即用,由笔耕文化传播整理发布。
声明:教程来自《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') 可以使用telnet命令访问服务器:
第二步:监听所有的连接请求
服务器源代码:
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') 这里添加了一个事件监听器client.on(),每当client发送data的时候这个函数都会被调用。所以现在不论发送什么数据,,服务器都会显示出来:
但是这里有个问题:返回的内容均为乱码,因为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') 这个就是一个最简单的聊天服务器了,可以打开多个终端,输入telnet localhost 2333访问服务器。
下一步,改进消息发送和显示的方式,让页面更友善一些。
本文关键词:Node即学即用,由笔耕文化传播整理发布。
本文编号:268738
本文链接:https://www.wllwen.com/wenshubaike/mishujinen/268738.html
最近更新
教材专著