网络编程的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