前端需要去了解的nodejs知识(net)

简介: 对于前端开发,http服务是我们最长接触的通信服务,偶尔也会用到一些类似于聊天框的长链接应用,这些应用都不是基于HTTP开发的,HTTP是是无状态的短连接,说到长连接是不是首先会想到TCP,TCP是有状态的长连接协议。TCP和HTTP都是有连接的意思就是通信前需要建立连接,但是在计算机网络世界还有种无连接的协议UDP,下面我们就来了解下TCP在nodejs中的应用。

网络异常,图片无法展示
|


对于前端开发,http服务是我们最长接触的通信服务,偶尔也会用到一些类似于聊天框的长链接应用,这些应用都不是基于HTTP开发的,HTTP是是无状态的短连接,说到长连接是不是首先会想到TCP,TCP是有状态的长连接协议。TCP和HTTP都是有连接的意思就是通信前需要建立连接,但是在计算机网络世界还有种无连接的协议UDP,下面我们就来了解下TCP在nodejs中的应用。

net


TCP(传输控制协议)协议

TCP协议的特点如下:

  • TCP是面向连接的传输层协议
  • TCP是可靠的传输方式,可确保数据不会丢失
  • TCP是一对一的连接的
  • TCP可提供全双工通信(通信双方可以任意时候发送数据)
  • TCP数据传输是面向字节流的
  • TCP是三次握手的连接方式,四次挥手的断开连接方式
  • 三次握手:客户端发送连接请求,服务端同意连接请问并返回到客户端,客户端建立与服务端的连接

网络异常,图片无法展示
|

  • 四次挥手,TCP释放连接的流程大致如下:Client告诉Server不会再发送数据=》Server告诉Client知道了等我发送完当前数据就关闭=》Server端发送完当前数据释放连接,等待Client确认=》Client确认释放连接,TCP连接关闭

网络异常,图片无法展示
|

  • TCP应用场合:网页浏览,聊天程序,邮件等需要保证数据准确性的应用

nodejs中的net使用

Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法。

  • 服务端,主要流程为:创建服务,监听连接,发送数据,连接断开
const net = require("net");
/**
 * 服务端创建连接服务
 */
const server = net.createServer((socket) => {
  //监听关闭客户端连接
  socket.on("end", () => {
    console.log("客户端关闭连接!");
  });
  //收到的数据是二进制流数据
  socket.on("data", (data) => {
    console.log("data: ", data.toString());
  });
  //向所有的客户端发送数据
  socket.write("hello, I am server!", () => {});
});
// 设置同时最大连接数
server.setMaxListeners = 99;
server.on("connection", () => {
  console.log("新的客户端已接入");
});
server.listen(4000, () => {
  console.log("server is listening");
});
  • 客户端,主要流程为:连接服务,监听服务端数据,向服务端发送数据,连接断开
const net = require('net');
const client = net.createConnection(4000,'localhost')
//监听服务发来的数据
client.on('data',(data)=>{
    console.log('客户端:已成功连接服务端!');
    console.log('服务端发来的数据----: ', data.toString());
})
client.on('connect', function(){
    console.log('客户端:已经与服务端建立连接');
});
client.on('close', function(data){
    console.log('客户端:连接断开');
});
let index = 0;
setInterval(()=>{
    if(index === 9){
        //断开与服务器的连接
        client.end('10条数据已经发送完喽!')
        return
    }
    //客户端给服务端发送数据
    client.write(`向客户端发送第${index}条数据`)
    index ++
},1000)
// client.end(JSON.stringify({name:"wo shi bao bao a!"}))

总结


对于TCP协议最常用的应该就是实时聊天系统,另外基于HTTP协议的应用我们都可以认为底层协议是TCP应为HTTP是建立在TCP的基础之上的,理解TCP对于我们前端开发至关重要。

相关文章
|
5月前
|
JavaScript 前端开发 API
Node.js在前端的妙用:打造更出色的Web体验
Node.js在前端的妙用:打造更出色的Web体验
267 5
|
5月前
|
前端开发
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台(二)
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台
|
5月前
|
存储 开发框架 前端开发
前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构
发展历史:实验室信息管理系统(LIMS),就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现代的管理思想有机结合,利用数据处理技术、海量数据存储技术、宽带传输网络技术、自动化仪器分析技术,来对实验室的信息管理和质量控制等进行全方位管理的计算机软、硬件系统,以满足实验室管理上的各种目标(计划、控制、执行)。
64 1
|
5天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
17 0
|
2月前
|
编解码 前端开发 JavaScript
.NET_web前端框架_layui_栅格布局
【8月更文挑战第27天】
41 4
|
5天前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
5天前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
5天前
|
Web App开发 JavaScript 前端开发
对于 前端 解释下 node.js的必要性
对于 前端 解释下 node.js的必要性
7 0
|
2月前
|
JSON JavaScript 前端开发
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
|
2月前
|
JavaScript IDE 前端开发
前端开发工具配置 nodejs & git & IDE
前端开发工具配置 nodejs & git & IDE