gpt4 book ai didi

javascript - chrome.sockets.tcp.secure 和 TLS 握手未按预期工作

转载 作者:可可西里 更新时间:2023-11-01 02:53:49 26 4
gpt4 key购买 nike

我正在使用新的套接字 API (Chrome.sockets.tcp) 开发 Chrome 应用程序。我已经能够成功地让所有 HTTP 请求正常工作,没有任何问题。我遇到的问题是使用 TLS 握手的 HTTPS 登录。我们创建了一个 Visual Studio C# (RestRequest) 应用程序。我们可以使用 HTTPS 进行连接。使用 Wireshark,我注意到成功的通信是使用 TLSv1 实现的。

我尝试了多种解决方案,并引用/试验了以下链接,并试图提出一个解决方案。

还有更多链接!我写了一堆测试应用程序,但在最初的握手后都进入了死胡同。

下面的代码序列似乎完成了握手,但我无法发送登录信息。好像握手后套接字搞砸了。 (WireShark 显示所有 com 在登录后都是成功的)。

var that = this;
chrome.sockets.tcp.create({
persistent: false,
name: "hc",
bufferSize: 8192
}, function (createInfo) {
console.log("create info = " + JSON.stringify(createInfo));
if (chrome.runtime.lastError) {
error('Unable to create socket: ' + chrome.runtime.lastError.message);
}
that._socketId = createInfo.socketId;
chrome.sockets.tcp.setPaused(that._socketId, true, function () {
chrome.sockets.tcp.connect(that._socketId, that._httpHost, that._httpPort, function (result) {
chrome.sockets.tcp.onReceive.addListener(that._onReceive.bind(this));
chrome.sockets.tcp.onReceiveError.addListener(that._onReceiveError.bind(this));
chrome.sockets.tcp.secure(that._socketId, function (secureResult) {
chrome.sockets.tcp.send(that._socketId, str2ab('POST / HTTP/1.1\r\nHOST: ' + that._httpHost + '\r\n\r\n'), function (sendResult) {});
});
});
});
});

我已经尝试从 nmp forge 实现 TLSSocket,我得到了与上面示例相同的结果。

我们必须为此应用程序使用 TCP,主要是为了在 Chrome 应用程序中支持 cookie。

有没有人有解决方案或建议?我们已经投入了大量时间进行反复试验,但似乎已经走到了死胡同。

最佳答案

您需要在套接字安全后取消暂停。例如chrome.sockets.tcp.setPaused(that._socketId, false, ...)

关于javascript - chrome.sockets.tcp.secure 和 TLS 握手未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42588358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com