http.Server

2018-07-11 09:44 更新

此模塊會(huì)觸發(fā)以下事件

Event: 'request'

function (request, response) { }

request 是http.ServerRequest 的一個(gè)實(shí)例,而response 則是http.ServerResponse 的一個(gè)實(shí)例

Event: 'connection'

function (stream) { }

當(dāng)一個(gè)新的TCP stream 建立后發(fā)出此消息。stream 是一個(gè)net.Stream 的對(duì)象,通常用戶不會(huì)訪問(wèn)/使用這個(gè)事件。 參數(shù)stream 也可以在request.connection 中訪問(wèn)到.

Event: 'close'

function (errno) { }

當(dāng)服務(wù)器關(guān)閉的時(shí)候觸發(fā)此事件。

Event: 'request'

function (request, response) {}

每個(gè)請(qǐng)求發(fā)生的時(shí)候均會(huì)被觸發(fā)。請(qǐng)記住,每個(gè)連接可能會(huì)有多個(gè)請(qǐng)求(在keep-alive 連接情況下)

Event: 'upgrade'

function (request, socket, head)

每當(dāng)一個(gè)客戶端請(qǐng)求一個(gè)http upgrade 時(shí)候發(fā)出此消息。如果這個(gè)事件沒(méi)有監(jiān)聽(tīng),那么請(qǐng)求upgrade 的客戶端對(duì) 應(yīng)的連接將被關(guān)閉。

1.參數(shù)“request”代表一個(gè)http 請(qǐng)求,和'request'事件的參數(shù)意義相同。

2.socket 是在服務(wù)器與客戶端之間連接用的網(wǎng)絡(luò)socket

3.head 是Buffer 的一個(gè)實(shí)例,是upgraded stream(升級(jí)版stream....應(yīng)當(dāng)就是http upgrade)所發(fā)出的第一個(gè)包,這個(gè)參數(shù)可以為空。

當(dāng)此事件被觸發(fā)后,該請(qǐng)求所使用的socket 并不會(huì)有一個(gè)數(shù)據(jù)事件的監(jiān)聽(tīng)者,這意味著你如果需要處理通過(guò)這個(gè) SOCKET 發(fā)送到服務(wù)器端的數(shù)據(jù)的話則需要自己綁定數(shù)據(jù)事件監(jiān)聽(tīng)器

Event: 'clientError'

function (exception) {}

如果一個(gè)客戶端連接的'error'事件被觸發(fā),此函數(shù)將被執(zhí)行。

http.createServer(requestListener)

返回一個(gè)新的web server 對(duì)象。

requestListener 是一個(gè)會(huì)去自動(dòng)監(jiān)聽(tīng)'request'事件的函數(shù)。

server.listen(port, [hostname], [callback])

在指定端口和主機(jī)名上接受連接。如果hostname 沒(méi)有寫,這個(gè)服務(wù)器將直接在此機(jī)器的所有IPV4地址上接受連 接(INADDR_ANY).

如果要在UNIX SOCKET 上監(jiān)聽(tīng)的話,則需要提供一個(gè)文件名來(lái)替換端口和主機(jī)名. 這個(gè)方法是一個(gè)異步的方法,作為最后一個(gè)參數(shù)的回調(diào)方法將在服務(wù)器已經(jīng)在此端口上綁定好后被調(diào)用.

server.listen(path, [callback])

建立一個(gè)UNIX SOCKET 服務(wù)器并在指定路徑監(jiān)聽(tīng)。 這個(gè)方法是一個(gè)異步的方法,作為最后一個(gè)參數(shù)的回調(diào)方法將在服務(wù)器已經(jīng)在此端口上綁定好后被調(diào)用。

server.setSecure(credentials)

允許此服務(wù)器支持HTTS,配合crypto 模塊credentials 指定私鑰以及此服務(wù)器的證書,并且也可選擇數(shù)字中心認(rèn) 證的證書作為客戶端的認(rèn)證(方式)。

如果authentication 中有一或多個(gè)數(shù)字認(rèn)證中心證書,則服務(wù)器將請(qǐng)求客戶端發(fā)出一個(gè)客戶端證書作為HTTPS 握手的一部分。想要驗(yàn)證、訪問(wèn)證書合法性及內(nèi)容則可以通過(guò)服務(wù)器的request.connection 的verifyPeer() 以及 getPeerCertificate() 來(lái)實(shí)現(xiàn)。

server.close()

使此服務(wù)器停止接受任何新連接。

server.maxConnections

設(shè)置此屬性使服務(wù)器的連接數(shù)高于此數(shù)值時(shí)拒絕連接。

server.connections

代表當(dāng)前服務(wù)器的連接數(shù)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)