Node网络编程中多种服务构建你是否了解?

Node网络编程中多种服务构建你是否了解?
2019年07月23日 20:14 雷小天博客

在Web领域,大多数的编程语言需要专门的Web服务器作为容器,如ASP、ASP.NET需要IIS作为服务器,PHP需要搭载Apache或Nginx环境等,JSP需要Tomcat服务器等。但对于Node而言,只需要几行代码即可构建服务器,无需额外的容器。

Node提供了net、dgram、http、https这4个模块,分别用于处理TCP、UPD、HTTP、HTTPS、适用于服务器端和客户端。

1.构建TCP服务

TCP全名为传输控制协议,在OSI模型(由七层组成,分别为物理层、数据连接层、网络层、传输层、会话层、表示层、应用层)中属于传输层协议。许多应用层协议基于TCP构建,典型的是HTTP、SMTP、IMAP等协议。七层协议图如下所示:

OSI模型

TCP是面向连接协议,其显著的特征是在传输之前需要3此握手形成会话,如下图所示:

tcp在传输前3次握手

2.构建UDP服务

UDP又称用户数据包协议,与TCP一样同属网络传输层。UDP与TCP最大的不同就是UDP不是面向连接的。TCP中连接一旦建立,所有的会话都基于连接完成,客户端如果要与另一个TCP服务通信,需要另创建一个套接字来完成连接。但在UDP中,一个套接字可以与多个UDP服务通信,它虽然提供面向事务的简单不可靠信息传输服务,在网络差的情况下存在丢包严重的问题,但是由于它不行连接,资源消耗低,处理快速且灵活,所以常常应用在那种偶尔丢一两个数据包也不会产生重大影响的场景,比如音频、视频等。UDP目前应用很广泛,DNS服务即是基于它实现的。

3.构建HTTP服务

TCP与UDP都属于传输层协议,如果要构造高效的网络应用,就应该从传输层着手。但是对于经典的应用场景,则无需从传输层协议入手构造自己的应用,比如HTTP或SMTP等,这些经典的应用层协议对于普通应用而言绰绰有余。Node提供了基本的http和https模块用户HTTP和HTTPS的封装,对于其他的应用层协议的封装,也能从社区中轻松中的其实现。

4.构建WebSocket服务

提到Node,不能错过的是WebSocket协议。它与Node之间的配合堪称完美,其理由有两条。

第一、WebSocket客户端基于事件的变成模型与Node中自定义事件相差无几。

第二、WebSocket实现了客户端与服务端之间的长连接,二Node事件驱动的方式十分擅长与大量的客户端保存高并发连接。

除此之外,WebSocket与传统HTTP有如下好处。

客户端与服务端只建立一个TCP连接,可以使用更少的连接。

webSocket服务端可以推送数据到客户端,这远比HTTP请求响应模式更灵活,更高效。

有更轻量级的协议头,减少数据传输。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部