gpt4 book ai didi

IE9 中通过 SSL 的闪存套接字似乎有数据限制

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:39 25 4
gpt4 key购买 nike

我正在使用 socket.io 在 Internet Explorer 9 中通过 SSL 启动跨域 flash 套接字连接。当我启动连接时,一切似乎都正常,直到我发送客户端的整个 HTML 网页。如果我从不发送此 HTML,连接会持续存在,并且连接会发送少量数据。当我发送整个 HTML 页面时,socket.io 日志显示它正在缩短发送的 HTML,随后是 info - transport end (undefined)。我将这个错误追溯到

if (i === 0){
if (chr != '\u0000')
this.error('Bad framing. Expected null byte as first frame');
else
continue;
}

在服务器端的 default.js socket.io 文件中。似乎客户端出于某种原因正在分解此数据,这导致了格式错误的数据包。它不可能是 TCP 错误,因为发送此数量的数据适用于常规的 websockets 和 JSONP。

我完全不知道如何调试它。似乎它可能是一些特殊情况 Flash + SSL 错误。任何帮助将不胜感激。

最佳答案

TL;DR:尝试使用来自 https://github.com/NextThought/web-socket-js 的文件更新本地 socket.io 客户端中的 SWF 文件和 web_socket.js。

长答案:

socket.io 的分布式客户端版本(至少 0.9.10)似乎有一个错误:它分发的 Flash SWF 支持文件的版本(最初是从同一个 github 存储库派生的,上面提到的存储库是由于 SSL 实现中的错误,无法通过 SSL 发送大小大于 16K - 8 字节的 WebSocket 帧(16K 是 SSL 帧大小,8 字节是 WebSocket header 大小)。这是在 SSL 代码的原始版本(位于 http://code.google.com/p/as3crypto/issues/detail?id=14 )中发现的一个问题,尽管在撰写本文时该修复程序既没有合并到那里,也没有合并到任何一个 github 存储库中。

最初的 github 存储库现在已经开始实现最终的 WebSocket 规范,而与 socket.io 一起分发的版本使用的是更旧的草案规范(这使得诊断这个问题更加困难,因为旧规范不包含尽可能多的内容框架信息)。

开头引用的 github 存储库包含更新的 SWF 文件,其中包含最新的 github 更改和 SSL 错误修复。很容易合并到本地 socket.io 客户端构建中,对我们来说,它解决了问题(在 IE9 中使用 Flash Player 11 进行测试)。只有当您连接到的 WebSocket 服务器支持最终的 WebSocket 规范时,它才会起作用。在与 socket.io 一起分发的 fork 的 JavaScript 部分中有一些 socket.io 特定的补丁,以使其在 node.js 中运行(我认为);这个 repo 不包含这些补丁,所以它可能只能在网络浏览器中工作。

关于IE9 中通过 SSL 的闪存套接字似乎有数据限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756522/

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