最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例

 更新時(shí)間:2015年02月18日 14:40:43   投稿:junjie  
這篇文章主要介紹了NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例,本文講解 NodeJS 的 TCP 和 HTTP 監(jiān)聽(tīng) Domain Socket 文件例子,需要的朋友可以參考下

像 NodeJS 寫(xiě)的 TCP 服務(wù)可以監(jiān)聽(tīng)在某個(gè) sock 文件(Domain Socket) 上,它的 HTTP 服務(wù)也能這么干。雖然作為 HTTP 服務(wù)連接某個(gè) sock 文件的意義不大,所以這里只算是一個(gè)純粹的嘗試。

TCP 服務(wù)是這樣寫(xiě)

復(fù)制代碼 代碼如下:

var net = require('net');
net.createServer(function (socket) {
  socket.on('data', function (data) {
    socket.write('received: ' + data);
  });
}).listen('/tmp/node_tcp.sock');

連接上面那個(gè) '/tmp/node_tcp.sock'
復(fù)制代碼 代碼如下:

telnet /tmp/node_tcp.sock
Trying /tmp/node_tcp.sock...
Connected to (null).
Escape character is '^]'.
Hello World!
received: Hello World!

準(zhǔn)確說(shuō)來(lái)本文應(yīng)該是 NodeJS 的 TCP 和 HTTP 監(jiān)聽(tīng) Domain Socket 文件。

對(duì)于  TCP 監(jiān)聽(tīng) Domain Socket 還是很常用的,比如有時(shí)對(duì)本機(jī)的數(shù)據(jù)庫(kù)或緩存的訪問(wèn)就會(huì)這么做,像用 '/tmp/mysql.sock' 來(lái)訪問(wèn)本機(jī) MySQL 服務(wù),這樣就不需要啟動(dòng) TCP 端口暴露出來(lái),安全性有所提高,性能上也有一定的提升。

現(xiàn)在來(lái)看看 NodeJS 的 HTTP 監(jiān)聽(tīng)在 Domain Socket 上, 從經(jīng)典的例子來(lái)改造下

復(fù)制代碼 代碼如下:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen('/tmp/node_http.sock');
console.log('Server running at /tmp/node_http.sock');

尚不知如何在瀏覽器中訪問(wèn)以上的 HTTP 服務(wù),所以用 telnet 測(cè)試

復(fù)制代碼 代碼如下:

telnet /tmp/node_http.sock
Trying /tmp/node_http.sock...
Connected to (null).
Escape character is '^]'.
GET / HTTP/1.1
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Mon, 26 Jan 2015 04:21:09 GMT
Connection: keep-alive
Transfer-Encoding: chunked

c
Hello World

0


能正確處理對(duì)  '/tmp/node_http.sock' 上的 HTTP 請(qǐng)求。

用 NodeJS HTTP Client 來(lái)訪問(wèn)

復(fù)制代碼 代碼如下:

var http = require('http');

var options = {
  socketPath: '/tmp/node_http.sock',
  method: 'GET',
  path: '/'
};

var req = http.request(options, function(res){
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));

  res.on('data', function (chunk){
    console.log(chunk.toString());
  });
});

req.end();


執(zhí)行上面的代碼,假如文件名是 http_client.js,
復(fù)制代碼 代碼如下:

node http_client.js
STATUS: 200
HEADERS: {"content-type":"text/plain","date":"Mon, 26 Jan 2015 04:25:49 GMT","connection":"close","transfer-encoding":"chunked"}
Hello World

本文只作記錄,現(xiàn)在還想不到讓 HTTP 服務(wù)監(jiān)聽(tīng)在 Domain Socket 上的實(shí)際用意,況且瀏覽器也無(wú)法對(duì)它進(jìn)行訪問(wèn)。

相關(guān)文章

  • 基于 Node 實(shí)現(xiàn)簡(jiǎn)易 serve靜態(tài)資源服務(wù)器的示例詳解

    基于 Node 實(shí)現(xiàn)簡(jiǎn)易 serve靜態(tài)資源服務(wù)器的示例詳解

    靜態(tài)資源服務(wù)器(HTTP 服務(wù)器)可以將靜態(tài)文件(如 js、css、圖片)等通過(guò) HTTP 協(xié)議展現(xiàn)給客戶(hù)端。本文介紹如何基于 Node 實(shí)現(xiàn)一個(gè)簡(jiǎn)易的靜態(tài)資源服務(wù)器,感興趣的朋友一起看看吧
    2022-06-06
  • NodeJs的fs讀寫(xiě)刪除移動(dòng)監(jiān)聽(tīng)

    NodeJs的fs讀寫(xiě)刪除移動(dòng)監(jiān)聽(tīng)

    這篇文章主要介紹了NodeJs的fs讀寫(xiě)刪除移動(dòng)監(jiān)聽(tīng),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • node.js中的buffer.Buffer.isBuffer方法使用說(shuō)明

    node.js中的buffer.Buffer.isBuffer方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.Buffer.isBuffer方法使用說(shuō)明,本文介紹了buffer.Buffer.isBuffer的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js readline 逐行讀取、寫(xiě)入文件內(nèi)容的示例

    Node.js readline 逐行讀取、寫(xiě)入文件內(nèi)容的示例

    本篇文章主要介紹了Node.js readline逐行讀取、寫(xiě)入文件內(nèi)容的示例,運(yùn)用readline逐行讀取的兩種實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Nodejs 構(gòu)建Cluster集群多線程Worker threads

    Nodejs 構(gòu)建Cluster集群多線程Worker threads

    這篇文章主要為大家介紹了Nodejs 構(gòu)建Cluster集群多線程Worker threads示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 關(guān)于NodeJs和JAVA建立socket連接方式

    關(guān)于NodeJs和JAVA建立socket連接方式

    這篇文章主要介紹了關(guān)于NodeJs和JAVA建立socket連接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 輕松創(chuàng)建nodejs服務(wù)器(4):路由

    輕松創(chuàng)建nodejs服務(wù)器(4):路由

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(4):路由,服務(wù)器需要根據(jù)不同的URL或請(qǐng)求來(lái)執(zhí)行不一樣的操作,我們可以通過(guò)路由來(lái)實(shí)現(xiàn)這個(gè)步驟,需要的朋友可以參考下
    2014-12-12
  • 如何在Linux上安裝Node.js

    如何在Linux上安裝Node.js

    這篇文章主要為大家分享了如何在你的Linux發(fā)行版上安裝Node.js?感興趣的小伙伴們可以參考一下
    2016-04-04
  • 一文搞懂npm?install?意義

    一文搞懂npm?install?意義

    我們?cè)诎惭b依賴(lài)包的時(shí)候,不需要過(guò)多的去糾結(jié)是使用?-S?還是?-D?呢??隨便安裝到?dependencies?或者?devDependencies?里都行,反正?npm?install的時(shí)候,都會(huì)安裝dependencies?和?devDependencies依賴(lài),今天通過(guò)本文學(xué)習(xí)npm?install意義,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • npm報(bào)錯(cuò)"A?complete?log?of?this?run?can?be?found?in:"的解決辦法

    npm報(bào)錯(cuò)"A?complete?log?of?this?run?can?be?found?

    這篇文章主要給大家介紹了關(guān)于npm報(bào)錯(cuò)"A?complete?log?of?this?run?can?be?found?in:"的解決辦法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-04-04

最新評(píng)論

临潭县| 紫云| 宝应县| 新沂市| 泊头市| 金寨县| 江华| 苏尼特左旗| 普宁市| 抚顺县| 方城县| 自贡市| 敦煌市| 吉安县| 安仁县| 辰溪县| 雅江县| 治县。| 乐平市| 赣榆县| 江都市| 乾安县| 淮南市| 平泉县| 银川市| 聂拉木县| 盖州市| 桦川县| 翼城县| 土默特右旗| 夏河县| 新郑市| 汽车| 湖南省| 阿克陶县| 安多县| 靖安县| 若羌县| 莒南县| 安龙县| 宜兴市|