前端需要去了解的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对于我们前端开发至关重要。

相关文章
|
1月前
|
JavaScript 前端开发 API
Node.js在前端的妙用:打造更出色的Web体验
Node.js在前端的妙用:打造更出色的Web体验
197 5
|
1月前
|
前端开发
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台(二)
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台
|
1月前
|
Web App开发 JavaScript 前端开发
从脚手架开始学前端 【第3期】Node.js环境搭建(CentOS 7)
从脚手架开始学前端 【第3期】Node.js环境搭建(CentOS 7)
69 0
|
1月前
|
Web App开发 JavaScript 前端开发
从脚手架开始学前端 【第2期】Node.js环境搭建(windows)
从脚手架开始学前端 【第2期】Node.js环境搭建(windows)
55 0
|
1月前
|
存储 开发框架 前端开发
前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构
发展历史:实验室信息管理系统(LIMS),就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现代的管理思想有机结合,利用数据处理技术、海量数据存储技术、宽带传输网络技术、自动化仪器分析技术,来对实验室的信息管理和质量控制等进行全方位管理的计算机软、硬件系统,以满足实验室管理上的各种目标(计划、控制、执行)。
36 1
|
1月前
|
JavaScript 前端开发 NoSQL
构建基于Node.js的全栈应用:从前端到后端的完整指南
【5月更文挑战第24天】本文是关于使用Node.js构建全栈应用的指南,涵盖前端(React或Vue)、后端(Node.js + Express)和数据库(MongoDB)的选型与实现。文章介绍了项目结构、前端组件化开发、后端API接口编写、前后端联调及部署上线的注意事项,帮助读者掌握全栈开发流程。
|
21天前
|
Web App开发 资源调度 JavaScript
【保姆级】前端使用node.js基础教程
【6月更文挑战第3天】Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境,用于服务器端编程。常用命令包括:安装 Node.js,通过 `node -v` 查看版本;使用 npm(Node 包管理器)进行初始化、安装/卸载包、查看版本和更新;运行 `.js` 脚本;使用 `node inspect` 调试;借助 nodemon 实现自动重启;通过 `npm list` 管理包;
10 0
|
1月前
|
JSON JavaScript 前端开发
Node.js:前端开发的后端利器
Node.js作为一种运行在服务器端的JavaScript环境,为前端开发者打开了后端开发的大门。它以其高效的事件驱动、非阻塞I/O模型以及强大的npm生态,使得前端开发者能够轻松构建服务器端应用,实现前后端的全栈开发。本文将探讨Node.js的核心优势、应用场景以及在前端开发中的重要性。
|
1月前
|
JavaScript 前端开发 算法
【Node.js 版本过高】运行前端时,遇到错误 `Error: error:0308010C:digital envelope routines::unsupported`
【Node.js 版本过高】运行前端时,遇到错误 `Error: error:0308010C:digital envelope routines::unsupported`
188 0
|
1月前
|
Web App开发 JavaScript 前端开发
【Node.js】大前端技能最通俗易懂的讲解 快速入门必看
【Node.js】大前端技能最通俗易懂的讲解 快速入门必看
43 0