V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loongwang
V2EX  ›  Visual Studio Code

求助, 我在开发一个 vscode 插件, 发现插件中无法保持 http 长连接, 是插件有哪些隐藏设定吗

  •  
  •   loongwang ·
    alonWang · 2023-07-09 15:05:22 +08:00 · 2028 次点击
    这是一个创建于 506 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面这段代码

      let XXXXX = new http.Agent({ keepAlive: true, maxSockets: 1})
        for(let i=0;i<3;i++){
            http.get({
                hostname: 'localhost',
                method:'GET',
                port: 23659,
                path: '/api/get/alive',
                agent:XXXXX
            }, resp => {
                resp.on('data', data => {
                    console.log('data',data)
                });
                for (const key in XXXXX.sockets) {
                    console.log(key)
                    // if (XXXXX.sockets.hasOwnProperty(key)) {
                    //     console.log(key + ": ", XXXXX.sockets[key]);
                }
            }).end()
    

    放在 vscode 插件中, 运行后用 wireshark 抓包发现

    Connection:close
    
    

    放在一个普通 npm 项目中

    Connection:keep-alive
    

    搞了两天扛不住了, 大大们帮忙看看

    第 1 条附言  ·  2023-07-11 19:43:29 +08:00
    希望是让所有请求顺序执行, agent 搞不定, 最终解决办法
    http.globalAgent.maxSockets = 1
    6 条回复    2023-07-11 19:42:32 +08:00
    jry
        1
    jry  
       2023-07-09 20:21:51 +08:00 via iPhone
    websocket
    foolishcrab
        2
    foolishcrab  
       2023-07-09 22:25:58 +08:00 via iPhone
    你这是一个典型的 xy 问题,建议了解一下
    loongwang
        3
    loongwang  
    OP
       2023-07-09 22:37:01 +08:00
    @jry 改造成本有点大,所以想尽可能解决长连接问题
    loongwang
        4
    loongwang  
    OP
       2023-07-09 22:39:44 +08:00
    @foolishcrab 求解,
    我的逻辑是
    发现 http 没有 keep-alive 导致逻辑存在问题=>尝试修改代码解决 keep-alive 问题 => 发现普通项目 keep-alive 没问题,但是插件项目中有问题 =>解决不了,发帖求助
    niub
        5
    niub  
       2023-07-10 09:20:39 +08:00
    跟插件没啥关系,HTTP/1.1 起默认长连接
    loongwang
        6
    loongwang  
    OP
       2023-07-11 19:42:32 +08:00
    @niub but 在一个新的非插件项目中 表现就正常
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:50 · PVG 22:50 · LAX 06:50 · JFK 09:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.