网络编程的Nodejs学习笔记

节点提供丰富的网络编程模块





节点模块
协议



传输控制协议



UDP


HTTP
超文本传输协议


HTTPS
HTTPS







TCP服务事件分为以下两类

(1)服务器事件

创建的net.createserver服务器(),它是EventEmitter实例,和自定义事件有以下:

听:听后()调用绑定端口或域套接字,它是触发,只是写server.listen(端口,侦听器),通过二参数。

连接:每个客户端套接字时触发服务器连接到服务器,和简洁的描述是通过net.createserver()和最后一个参数。

关闭:当服务器关闭时,服务器将停止接受新的套接字连接后打电话server.close(),但保持现有连接。当所有连接断开时,它将触发事件。

错误:该事件将在服务器上出现异常时触发。

(2)连接事件

服务器可以同时维护多个客户机的连接,是每个连接的典型可读流对象,流对象可用于服务器与客户端之间的通信。它可以通过数据事件从一端到一端读取数据,或者通过写()将数据从一端发送到另一端。

数据:当一个终端调用写()发送数据时,另一端触发数据事件,事件传递的数据是由写()发送的数据。

结束:当鳍数据在连接的任何一端发送时,事件将被触发。

连接:此事件用于客户端,当套接字连接到服务器时,将触发该事件。

漏:当前结束时,当任意结束调用写入()发送数据时触发事件。

错误:发送异常时

关闭:当套接字完全关闭时触发。

超时:当连接在某一时间后不再活动时,触发事件通知用户连接空闲。

TCP有一个网络中的小数据包的优化策略:Nagle算法时触发的数据达到一定量。

UDP服务

UDP是一个用户数据包协议,它不是面向连接的服务。在节点,UDP是EventEmitter实例,没有实例的流,与下面的自定义事件:

(1)消息:当UDP套接字监视网卡端口时,它在接收消息时触发消息,触发携带数据成为消息缓冲对象和远程地址信息。

(2)监听:当UDP套接字开始监听时触发事件。

(3)关闭:事件被触发时关闭()方法,并且消息事件不再被触发。如果您需要再次触发消息事件,则需要重新绑定。

(4)错误:当异常发生时,如果它不直接抛出,该进程将被撤回。

HTTP服务

节点中的HTTP模块继承来自TCP服务器(NET模块)。它可以保持与多个客户机的连接。因为它不创建一个连接线程和保持低内存占用,可以实现高并发的HTTP服务和TCP服务之间的区别是,一个TCP会话后可以用于多个请求和响应是opened.tcp服务单位连接服务和HTTP服务请求单元服务。HTTP模块的连接请求的封装过程。

HTTP模块抽象的读写使用的serverrequest和serverresponse对象的插座,对应于请求和响应操作,分别。

(1)http请求

对于读操作的TCP连接,HTTP模块封装成serverrequest对象。例如,标题部分req.method,req.url,req.headers,报纸文体的数据抽象为一个只读的流对象。如果业务逻辑需要在文体数据中读取数据,则需要在数据流完成后完成操作。

(2)HTTP响应

HTTP响应封装了底层连接的写操作,它可以被看作是一个可写流对象。

响应消息头信息的方法:res.setheader()和res.writeheader()方法,可以设置很多次setHeader,但writeHeader连接必须调用。

写作方法:res.write()和()方法res.end

(3)HTTP服务器事件

连接:当客户机和服务器建立TCP连接时,引发连接事件。

请求:在建立TCP连接之后,HTTP模块的底部在数据流中抽象HTTP请求和HTTP响应。当请求数据发送到服务器端,它触发事件解决HTTP请求头后;后res.end(),TCP连接可用于下一个请求。

收盘:叫server.close方法停止接收新的连接和触发事件时,所有现有的连接断开。

checkcontinue:当一些客户发送大量的数据,他们发送一个请求与期望:100继续服务器,并触发事件。

连接:当客户机启动连接请求时触发

升级:当客户需要升级的连接协议,客户端要与服务器协商,和客户端将请求标头中带来updagrade场。

clienterror:连接的客户端发送一个错误,和误差传递到服务器时触发事件

(4)HTTP客户端

HTTP模块提供了http.request(选项,连接)构建HTTP的客户端。

在请求对象的HTTP客户端和服务器类似,该事件被称为响应,在分析响应消息的ClientRequest,一个解析响应头响应的事件触发,发送的ClientResponse操作的响应对象,在只读流方式提供后续响应消息。

(5)HTTP客户端事件

响应:与服务器请求事件相对应的客户机在请求发送到响应时触发事件。

套接字:当分配当前请求对象时,在底层连接池中设置的连接被触发。

连接:当客户端向服务器发送连接请求时,如果服务器响应200状态代码,客户端将触发事件。

升级:当客户端从服务器接收到升级请求时,如果服务器响应101个交换协议状态,客户机将触发该事件。

继续:在客户端启动期望:100继续向服务器发送标头信息后,它尝试发送更大的数据。如果服务器响应100继续的状态,服务器将触发事件。

WebSocket服务

WebSocket的首次出现作为HTML5的一个重要特征,具有以下优势,http:

(1)客户端和服务器只设置TCP连接以减少连接。

(2)WebSocket服务器推送数据到客户端,这远比HTTP请求响应模式更加灵活和高效。

(3)一个更轻量级的协议报头来减少数据传输

有没有在WebSocket建立节点库,但社区WS模块封装了WebSocket的底层实现,如著名的socket.io