【问题标题】:SockJS not working on IE9 (Websockets)SockJS 不能在 IE9 上运行(Websockets)
【发布时间】:2014-07-02 07:31:42
【问题描述】:

我正在尝试通过 STOMP 设置一个使用 SockJS 的应用程序。但是,似乎没有建立连接。我在 Chrome、FF 等上运行所有这些都没有这些问题。

有没有办法为 IE9 提供支持?还是无法在 IE9 上使用 sockjs 运行 websocket?我看到一些讨论,人们正在解决一些使用 IE9 和 sockjs 的问题,但没有人为我的问题提供解决方案。

BR

【问题讨论】:

  • 如果您在 IE 上打开开发者工具,您是否看到任何错误? Sock.js 应该通过使用 websockets 的替代传输来支持 IE9。

标签: websocket internet-explorer-9 sockjs


【解决方案1】:

问题已解决。 SockJS 在 IE9 上模拟 websocket 没有问题。我唯一要做的就是提供创建 SockJS 对象的绝对路径。

之前:

var webSocket = new SockJS('topic/publish');

之后:

var webSocket = new SockJS('http://localhost:8080/topic/publish');

虽然它可以在 Chrome 和 Firefox 上运行,但在不支持 websockets(开箱即用)的 IE9 上运行它还是存在问题。

【讨论】:

  • 您对堆栈有疑问吗?创建一个,我会尽力回答。但请提供端点实现、您的 js 代码等的所有详细信息。
  • 我试过了,SockJS 0.3.4 不支持 IE9。 1.0.3 确实如此。
【解决方案2】:

Internet Explorer 9 不支持 websockets http://caniuse.com/websockets

您可以使用基于 Flash 的 polyfill,例如 https://github.com/gimite/web-socket-js

【讨论】:

  • SockJS 模拟 IE9 的 websockets。
  • 模拟还是退回到长轮询?
  • 后备模拟。
  • web-socket-js 使用 TCP 连接模拟 websocket。退回到长轮询不是在模拟,而是在使用其他东西。
  • 我不是在谈论 web-socket-js。模拟总是通过使用其他东西来做一件事,此外,在 SockJS 的情况下,我们从 Spring 及其 websockets 包的角度得到相同的结果。最后,我真的不在乎它被称为“使用”还是“模拟”。对我来说,重要的是它适用于 IE9 并达到其目的。我认为这种吹毛求疵没有意义。更多详情请参考项目网站:github.com/sockjs.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2017-02-17
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
相关资源
最近更新 更多