gpt4 book ai didi

https - SockJS 在 IE9 上有问题

转载 作者:行者123 更新时间:2023-12-01 11:49:03 25 4
gpt4 key购买 nike

我在这里看到了类似失败的报告:https://groups.google.com/forum/?fromgroups=#!topic/sockjs/QNtA1_p_arU ,但我的问题似乎有所不同。

我的设置:客户端连接到 https://www.mysite.com/sockjs 以获得 SockJS,实际页面在 https://www.mysite.com/提供废话/废话/废话。页面上的所有外部元素(例如 css 和 js)都使用 https 提供服务,包括 SockJS-Client (https://d1fxtkz8shb9d2.cloudfront.net/sockjs-0.3.js,应该是 0.3。 4 为最新版本)。后端使用 SockJS-Tornado 制作。

问题 1:我指定要使用以下协议(protocol):

var options = {protocols_whitelist: ["websocket", "xhr-streaming", "xdr-streaming", "xhr-polling", "xdr-polling", "iframe-htmlfile", "iframe-eventsource", "iframe-xhr-polling"], debug: true};             
conn = new SockJS("https://www.mysite.com/sockjs", options);

但是,IE9 似乎只是使用了最差的协议(protocol) iframe-htmlfile,正如我在服务器日志中看到的:

INFO:root:200 GET /sockjs/info?t=1353062888578 (127.0.0.1) 0.51ms
INFO:root:200 GET /sockjs/iframe.html (127.0.0.1) 22.21ms

为什么不使用xdr-streamingxdr-polling?在 SockJS 文档中,它在 'IE8, 9 (cookies=no)' 下标记了这两个协议(protocol),这是否意味着 SockJS 只会在浏览器禁用 cookie 时使用它们?

问题 2:使用 iframe-htmlfile 协议(protocol),用户将收到一个 'Only Secure Content is Displayed' 警告表示混合内容问题的页面。然而,没有其他经过测试的浏览器报告此警告(例如 Chrome、FireFox、Safari),并且如前所述,页面上的每个外部资源都是通过 https 提供的。为什么是这样?是否与使用的此特定协议(protocol)iframe-htmlfile有关?

与此同时,SockJS 难以连接到服务器并发送消息。这是我在服务器日志中看到的:

INFO:root:200 GET /sockjs/info?t=1353062888578 (127.0.0.1) 0.51ms
INFO:root:200 GET /sockjs/iframe.html (127.0.0.1) 22.21ms
INFO:root:200 GET /sockjs/info?t=1353062922712 (127.0.0.1) 0.39ms
connection openned for: 127.0.0.1
INFO:root:200 GET /sockjs/info?t=1353062963868 (127.0.0.1) 0.36ms
WARNING:root:Read error on 12: [Errno 104] Connection reset by peer
WARNING:root:error on read
Traceback (most recent call last):
File "/home/ml/envs/.virtualenvs/sockapp/local/lib/python2.7/site-packages/tornado/iostream.py", line 355, in _handle_read
if self._read_to_buffer() == 0:
File "/home/ml/envs/.virtualenvs/sockapp/local/lib/python2.7/site-packages/tornado/iostream.py", line 422, in _read_to_buffer
chunk = self._read_from_socket()
File "/home/ml/envs/.virtualenvs/sockapp/local/lib/python2.7/site-packages/tornado/iostream.py", line 403, in _read_from_socket
chunk = self.socket.recv(self.read_chunk_size)
error: [Errno 104] Connection reset by peer
subject disconnection from: None
Message handled in: 0 ms
INFO:root:200 GET /sockjs/369/rpf1d1vl/htmlfile?c=_jp.aepnvri (127.0.0.1) 60006.30ms

最后一个错误好像是超时了。当我关闭 IE9 中的警告对话框时,连接似乎已打开,但之后没有从浏览器收到任何消息(浏览器应在连接打开后立即发送消息)。我想知道这是否与之前的混合内容警告有关。

最佳答案

我认为我们能够在 SockJS 邮件列表中发现您的问题。快速回顾:

问题 1 - 您的服务器要求客户端仅使用执行 cookie 的传输(出于负载平衡原因),这意味着不能使用基于 XDR 的传输(XDR 不能执行 cookie)。

问题 2 - 您忘记在服务器端设置 sockjs_url 参数,以包含来自 https(而非 http)的 sockjs javascript。这就是您收到混合内容警告的原因。

关于https - SockJS 在 IE9 上有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417069/

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