午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    nodejs web應(yīng)用監(jiān)聽sock文件實例
    來源:易賢網(wǎng) 閱讀:821 次 日期:2016-06-24 09:23:06
    溫馨提示:易賢網(wǎng)小編為您整理了“nodejs web應(yīng)用監(jiān)聽sock文件實例”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了nodejs web應(yīng)用監(jiān)聽sock文件實例,本文講解 nodejs 的 tcp 和 http 監(jiān)聽 domain socket 文件例子,需要的朋友可以參考下

    像 nodejs 寫的 tcp 服務(wù)可以監(jiān)聽在某個 sock 文件(domain socket) 上,它的 http 服務(wù)也能這么干。雖然作為 http 服務(wù)連接某個 sock 文件的意義不大,所以這里只算是一個純粹的嘗試。

    tcp 服務(wù)是這樣寫

    代碼如下:

    var net = require('net');

    net.createserver(function (socket) {

    socket.on('data', function (data) {

    socket.write('received: ' + data);

    });

    }).listen('/tmp/node_tcp.sock');

    連接上面那個 '/tmp/node_tcp.sock'

    代碼如下:

    telnet /tmp/node_tcp.sock

    trying /tmp/node_tcp.sock...

    connected to (null).

    escape character is '^]'.

    hello world!

    received: hello world!

    準確說來本文應(yīng)該是 nodejs 的 tcp 和 http 監(jiān)聽 domain socket 文件。

    對于 tcp 監(jiān)聽 domain socket 還是很常用的,比如有時對本機的數(shù)據(jù)庫或緩存的訪問就會這么做,像用 '/tmp/mysql.sock' 來訪問本機 mysql 服務(wù),這樣就不需要啟動 tcp 端口暴露出來,安全性有所提高,性能上也有一定的提升。

    現(xiàn)在來看看 nodejs 的 http 監(jiān)聽在 domain socket 上, 從經(jīng)典的例子來改造下

    代碼如下:

    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');

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

    代碼如下:

    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

    能正確處理對 '/tmp/node_http.sock' 上的 http 請求。

    用 nodejs http client 來訪問

    代碼如下:

    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,

    代碼如下:

    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)聽在 domain socket 上的實際用意,況且瀏覽器也無法對它進行訪問。

    更多信息請查看腳本欄目
    易賢網(wǎng)手機網(wǎng)站地址:nodejs web應(yīng)用監(jiān)聽sock文件實例

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)