问题标签 [spdy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 Facebook JavaScript SDK 时 SPDY 出现 Chromium 错误
我使用适用于 iOs 和 Android 的 Facebook Javascript SDK 开发了一个带有 HTML5 + Cordova (Phonegap) 的移动应用程序。我这样实现它:
它在 Android 和 iOS 上运行了几个月,直到昨天,在 Android 上。api调用在做,回调函数没有被调用的时候会报错。
这是 eclipse 中 LogCat 的错误:
02-26 12:27:10.526: W/chromium(22379): external/chromium/net/spdy/spdy_session.cc:1246: [0226/122710:WARNING:spdy_session.cc(1246)] 无法解析 Spdy 控制帧标题。02-26 12:27:10.526: D/chromium(22379): 未知的铬错误: -337 02-26 12:27:10.526: W/chromium(22379): external/chromium/net/spdy/spdy_session.cc: 1058: [0226/122710:WARNING:spdy_session.cc(1058)] 接收到无效流 1 的数据帧 02-26 12:27:10.526: W/chromium(22379): external/chromium/net/spdy/spdy_session.cc :1058: [0226/122710:WARNING:spdy_session.cc(1058)] 接收到无效流 1 的数据帧
调用查询Facebook(使用协议spdy)时似乎是android浏览器Chromium的错误
有人有想法吗?
谢谢 !
nginx - 如何在 Nginx 上设置 SPDY 协议?
我有一个 Rails 应用程序,想设置谷歌 SPDY 协议支持。但是在使用 SPDY 补丁安装 Nginx 然后在虚拟主机中启用 spdy 之后,它不允许我重新启动 nginx 而是引发以下错误。
我已经用 spdy 补丁编译了最新的 nginx 1.3.13,这里我提到我的安装步骤
它编译成功,没有任何错误。结果 0f nginx -V 给出以下
我的 /etc/nginx/site-enabled 配置有
在所有这些成功安装之后,nginx 不会在启用站点的文件的服务器块中使用 spdy 参数重新启动。
有什么建议么?我肯定会在这里遗漏一些东西,但无法弄清楚。
azure - Windows Azure 是否支持 SPDY 协议?
有谁知道 Windows Azure 是否(或计划)支持 SPDY 协议?我没有找到任何东西,所以我想它还不支持......
jetty - 使用 OpenJdk 替代 Jetty Npn
你们知道与 Sun Jvm 一起使用的替代方案吗?我们不能使用 Open Jdk,所以我正在寻找可以与 Sun Jvm 一起使用的替代 NPN 库。
performance - spdy 比 keep-alive https 更快?
我已经看到SPDY 与通过保持连接连接的 http 多路复用有什么不同以及HTTP 管道和 HTTP 多路复用与 SPDY 之间的区别还有http://www.guypo.com/technical/not-as-spdy-as-you-thought /。
我什至注意到,根据我自己的经验,两者都只比 ping 多几毫秒。
我错过了什么吗?我用它来安装http://www.howtoforge.com/using-mod_spdy-with-apache2-on-ubuntu-12.10。有没有我错过的设置?
ssl - 在初始 https 之后再次为 wss 握手?
假设一个 100% 安全的 websocket 站点,webserver 提供所有文件:html、js、css 等,websocket 提供客户端和服务器之间的所有数据。
显然最初的 ssl 握手是在默认 https 端口上的客户端和 webserver 之间进行的,但是 wss 将在不同的端口上,所以它必须再次握手吗?
我问的原因是因为 websockets 和 spdy 还没有一起工作(所以我已经读过),所以我希望通过在 web 服务器上安装 spdy 并依赖 wss 的 keep-alive 来解决它,因为有些握手后声称spdy并不比keep-alive快多少(如果有的话)spdy比keep-alive https快吗?.
performance - SPDY + Nginx - 建议尽可能使用?
因此,我们为 SSL 请求/响应运行了 nginx + spdy。
一切正常。
不幸的是,spdy 仅在这一点上是 SSL。
现在,我们的服务相当重 ajax。
我们可以选择相当快速地进行所需的更改,以便将请求发送到我们的 ssl 处理程序,我们的 ssl 处理程序将它们反向代理到它们需要去的地方。
spdy 真的会加快速度吗?花几个小时让 chrome / latest firefox 将我们的 ajax 请求发送到我们的 ssl 处理程序并让我们的 ssl 处理程序将它们反向代理到他们需要去的地方是否值得?
笔记:
a) 这仅对选定的一组白名单浏览器有效(例如:chrome latest / firefox latest)。相当简单的js在那里改变。
b) 是的,我们知道如何在这些白名单浏览器上发出 http -> https ajax 请求。
c) 根据我们相当广泛的测试,nginx + spdy 组合运行良好。所以是的,我们知道它在这一点上略显 alpha/beta。我们愿意承担的小风险。
d) 请记住,我们的服务是 90%+ ajax。只有初始条目是通过非 ajax 提供的,所有其他“页面视图”都是通过 ajax 处理的。因此,这有可能为我们的大部分用户加快速度。
谢谢。
compression - zlib inflate 返回 Z_DATA_ERROR “不正确的标头检查”
我正在尝试在 Web 服务器上开发自己的 SPDY 支持实现,SPDY 是 Google 实验性协议,用于减少加载网页的延迟。客户端/服务器交互通过“流”发生,即客户端和服务器之间名为“帧”的 SPDY 信息单元的双向交换。其中一些帧中有一个标题块,并且这个块总是被压缩的。我正在使用以下函数(Web服务器是用C编写的)来解压“头块”,压缩/解压算法是deflate,所以zlib是这样的:
}
SPDY 规范建议为 SPDY 会话中的每个帧(对应于 TCP 连接)中的每个帧重用相同的压缩器/解压缩器,这样每个标头块都受到 z_stream 的威胁,内部状态已经通过使用字典“预热” (也包括在 SPDY 规范中)。字典设置和z_stream初始化成功,第一块解压正常,第二帧块解压失败
rv = 膨胀(decomp,Z_SYNC_FLUSH);
返回值为 -3 (Z_DATA_ERROR),decomp->msg 设置为“Incorrect header check”。在我看来,inflate 找不到 zlib 标头。压缩和解压缩数据是通过按照谷歌规范的建议使用 Z_SYNC_FLUSH 调用 deflate() 和 inflate() 来完成的,我在 chromium(我实际用于测试的浏览器)源代码中检查了这一点以确保。第一个块(成功解压)是:
而第二个街区(这让我发疯)是:
在他们两个中,我都可以识别Z_SYNC_FLUSH
预告片(00FF
),但我无法确定第二帧是否在其开头有正确的标题。我的问题:第二个压缩内容实际上是无标题的吗?并且,在这种情况下,我可以通过哪种方式解压这个流,也许使用原始的 deflate 解压(使用 inflateBack())?
就像我在下面的评论中简要解释的那样,错误出现在 inflateReset() 调用中,因为它破坏了使用 00FF 预告片获得的压缩器和解压缩器之间的同步。最后,代码的正确版本是:
有关更多信息,请参阅有趣的:http: //www.bolet.org/~pornin/deflate-flush.htm
spdy - 了解 SPDY 延迟声明
阅读http://dev.chromium.org/spdy/spdy-whitepaper上的 SPDY 白皮书,似乎支持它会改善我的 HTTP 延迟。但是,我不清楚其中的一些说法。
1)“因为 HTTP 一次只能获取一个资源(HTTP 流水线有帮助,但仍然只强制执行 FIFO 队列),500 毫秒的服务器延迟会阻止 TCP 通道重复用于其他请求。” -- 这个500ms的数字是从哪里来的?
2) “我们发现,SPDY 的延迟节省随着丢包率的增加而成比例地增加,在 2% 时加速高达 48%。” - 但是,将所有请求放在单个 TCP 连接上是否意味着拥塞控制会减慢您的所有请求,而您是否有多个连接,1 个 TCP 流会减慢速度,而其他 TCP 流不会?
3) “[使用流水线] 处理流中任何内容的任何延迟(无论是前端的长请求还是丢包)都会延迟整个流。” -- 这意味着丢包不会延迟使用 SPDY 的整个流。为什么不?
java - 使用 java 客户端与 spdy 服务器对话
我已经使用 jetty9 启动了一个 spdy 代理服务器。
码头-spdy-proxy.xml:
http/1.1 本地主机 http/1.1 127.0.0.1 9090
8080 8443
此服务器已正常启动。
在我看来,这个代理服务器可以将 spdy 转换为 http 并将其代理到目标服务器。
我现在无法测试它,因为我不知道如何使用 java 客户端(不在浏览器中)与代理服务器通信。我用谷歌搜索了我的问题,但什么也没找到,这里有什么建议吗?