Node.js
request-promise

request-promise KEEPALIVEで接続を維持したい

接続にかかる時間を短縮するためや接続しづらさを解消するために接続を維持したまま続けてリクエストをしたい場合がある。

request-promiseはkeepalive接続に対応している
オプションにforeverという項目があるのでこれをtrueにすると接続が維持されるようになる

以下はそのサンプルである

const rp = require('request-promise')
const get = async() => {
    const uri = "http://example.com"
    const opt = {
        uri : uri,
        method: "GET",
        timeout: 10 * 1000,
        forever: true,
    }
    const result = { success: null, error: null, time: 0 }
    const begintime = process.uptime()
    try{
        result.success = await rp(opt)
    }catch(e){
        result.error = e
    }
    const endtime = process.uptime()
    result.time = endtime - begintime
    return result
}

const main = async() => {
    for(let i=0; i<5; ++i) await get().then(console.log)
}

main()