国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nodejs 檢測port是否被占用

hyuan / 1145人閱讀

摘要:為了解決工具起多個服務的時候端口被占用的情況。分享研究的代碼片段。

為了解決 ssr 工具 起多個服務的時候端口被占用的情況。分享研究的代碼片段。

// 檢測port是否被占用
function probe(port, callback) {

    var server = net.createServer().listen(port)

    var calledOnce = false

    var timeoutRef = setTimeout(function () {
        calledOnce = true
        callback(false,port)
    }, 2000)

    timeoutRef.unref()

    var connected = false

    server.on("listening", function() {
        clearTimeout(timeoutRef)

        if (server)
            server.close()

        if (!calledOnce) {
            calledOnce = true
            callback(true,port)
        }
    })

    server.on("error", function(err) {
        clearTimeout(timeoutRef)

        var result = true
        if (err.code === "EADDRINUSE")
            result = false

        if (!calledOnce) {
            calledOnce = true
            callback(result,port)
        }
    })
}

使用例子:

function server(_port){
    var pt = _port || __port;
    probe(pt,function(bl,_pt){
        // 端口被占用 bl 返回false
        // _pt:傳入的端口號
        if(bl === true){
            // ssr(_pt)
            server = http.createServer(connListener);
            server = server.listen(parseInt(_pt, 10));
            console.log("
  Static file server running at" + "

=> http://localhost:" + _pt + "
");
        }else{
            server(_pt+1)
        }
    })
}

關注公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91535.html

相關文章

  • Nodejs高性能原理(下) --- 事件循環詳解

    摘要:如果一個即時定時器是被一個正在執行的回調排入隊列的,則該定時器直到下一次事件循環迭代才會被觸發。參數描述在事件循環的當前回合結束時要調用的函數。事件輪詢隨后的調用,會在任何事件包括定時器之前運行。 系列文章 Nodejs高性能原理(上) --- 異步非阻塞事件驅動模型Nodejs高性能原理(下) --- 事件循環詳解 前言 終于開始我nodejs的博客生涯了,先從基本的原理講起.以前寫...

    newsning 評論0 收藏0
  • vue-cli#4.7項目結構分析

    摘要:前言使用過進行項目開發的同學,一定知道或者使用過腳手架,他能夠很好的搭建項目結構和工程,讓我們能夠把足夠的精力放在業務開發上。對象提供一系列屬性,用于返回系統信息返回當前進程的命令行參數數組。 前言 使用過 vue 進行項目開發的同學,一定知道或者使用過 vue-cli 腳手架,他能夠很好的搭建項目結構和工程,讓我們能夠把足夠的精力放在業務開發上。也正是因為這樣,很多時候我們會因為項目...

    EastWoodYang 評論0 收藏0
  • [翻譯]了解NodeJS看這一篇就夠了

    摘要:當這些隱藏于幕后的工作者處理完委托給它們的事件后,它們會觸發綁定在這些事件上的回調函數去通知。習慣回調是一個單線程事件驅動的運行環境,也就是說,在里,任何事都是對事件的響應。 原文地址:https://codeburst.io/the-only-nodejs-introduction-youll-ever-need-d969a47ef219 作者:vick_onrails 摘要:這...

    pakolagij 評論0 收藏0
  • nodejs微服務解決方案

    摘要:前言是一個微服務工具集,它賦予系統易于連續構建和更新的能力。這個對象既包含某個微服務所需要調取另一個微服務的特征,同時也包含傳參。和微服務發現有些類似不過是用模式代替,目前為止模式是完全可以實現服務發現功能,但是否更加靈活還有待去挖掘。 前言 seneca是一個nodejs微服務工具集,它賦予系統易于連續構建和更新的能力。下面會逐一和大家一起了解相關技術入門以及實踐。 這里插入一段硬廣...

    canger 評論0 收藏0
  • 袋鼠云前端項目發布工具dtux-kangaroo

    摘要:每家公司在前端項目發布體系可能不盡相同,本篇文章僅僅介紹袋鼠云的前端發布體系,希望能對大家能有所啟發。目前袋鼠云采用的是前后端分離的方式,但是開發中還是比較依賴后端的,接口數據還不是很完善。 前言 在目前的大趨勢下,前端和后端解耦已經是一個業界的趨勢。前端和后端一旦解耦之后,前端的項目和后端的項目便可以自己發布,互不影響。這樣極大地提高工作效率,免去了很多互相等待的時間。每家公司在前端...

    yacheng 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<