【问题标题】:NodeJS WebSocket HTTPS request error Parse Error: Expected HTTP/ at Socket.socketOnData. with code: "HPE_INVALID_CONSTANT", reason: "Expected HTTP/"NodeJS WebSocket HTTPS 请求错误 Parse Error: Expected HTTP/ at Socket.socketOnData。代码:\"HPE_INVALID_CONSTANT\",原因:\"Expected HTTP/\"
【发布时间】:2023-02-09 04:34:32
【问题描述】:

我正在尝试创建一个 HTTPS 请求来处理与 Facebook 网络套接字的网络套接字连接,但它给出了代码:“HPE_INVALID_CONSTANT”错误:解析错误:预期 HTTP/ at Socket.socketOnData 错误并且连接被中止。 当我从邮递员那里做同样的事情时,它已成功连接。

节点版本:v16.16.0 邮递员日志:

Handshake Details

Request URL: https://edge-chat.facebook.com/chat?region=cln&sid=5791907370237951&cid=6ac042ef-a841-4bbc-a548-2a4f775952e2
Request Method: GET
Status Code: 101 Switching Protocols
Request Headers
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: p5wDrsZTWv5uehkNugyDrQ==
Connection: Upgrade
Upgrade: websocket
Origin: https://www.facebook.com
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Host: edge-chat.facebook.com

Response Headers
sec-websocket-extensions: permessage-deflate
Date: Fri, 21 Oct 2022 11:13:25 GMT
Upgrade: websocket
Sec-WebSocket-Accept: PZm3tVdgggnpTZHuQbiF5xNX8b8=
Connection: Upgrade
var https = require('http');

let outData = {
    "port": 443,
    "host": "edge-chat.facebook.com",
    "hostname": "edge-chat.facebook.com",
    "method": "GET",
    "headers": {
        "sec-websocket-extensions": "permessage-deflate; client_max_window_bits",
        "sec-websocket-key": "p5wDrsZTWv5uehkNugyDrQ==",
        "sec-websocket-version": "13",
        "origin": "https://www.facebook.com",
        "upgrade": "websocket",
        "host": "edge-chat.facebook.com",
        "Connection": "Upgrade"
    },
    "rejectUnauthorized": true,
    "agent": false,
    "path": "/chat?region=cln&sid=579190SSSSSSSS51&cid=6ac04SSWWWXXX1-4bbc-a548-2a4f775952e2"
}
let proxyReq = https.request(outData);

proxyReq.on('error', (err) => {
    console.log('Proxy req error', err)
});

proxyReq.on('response', function (res) {
    if (!res.upgrade) {
        console.log('Response received')
        console.log('HTTP/' + res.httpVersion + ' ' + res.statusCode + ' ' + res.statusMessage, res.headers)
    }
});

proxyReq.on('upgrade', function (proxyRes, proxySocket, proxyHead) {
    proxySocket.on('end', function () {
        console.log('ProxySocket error')
        console.log(arguments)
    });
    proxySocket.setTimeout(0);
    proxySocket.setNoDelay(true);
    proxySocket.setKeepAlive(true, 0);
});

proxyReq.end()

【问题讨论】:

    标签: javascript node.js websocket https backend


    【解决方案1】:

    Olá, estou com o mesmo problema,找到解决方案了吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多