ie9 ie8 WebSocket支持方案有哪些简单可行的?

发布于 2022-09-07 11:27:02 字数 825 浏览 49 评论 0

目前我找到了三个方案,试下来都不行。

请问有没有其他简单方案?

  • 可以引入进来就让IE9支持WebSocket
  • 或者只需要简单的配置就可以,而不需要改动任何服务端的方案
序号方案文档实现技术
1jwebsockethttp://www.jwebsocket.org/doc...基于flash
2web-socket-jshttps://github.com/gimite/web...基于flash
3sockjs-clienthttps://github.com/sockjs/soc...ie9上基于iframe

谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

可爱咩 2022-09-14 11:27:02

测试下来,web-socket-js简直可以兼容到底了。因为web-socket-js是基于flash的,所以必须要求要求IE8, IE9必须是Flash Player 10 或者更新的版本。

web-socket-js是基于flash的技术,只需要引入两个js文件和一个swf文件,就可以让浏览器用于几乎原生的WebSocket接口。另外,web-socket-js还是需要在ws服务端843端口做一个flash安全策略文件的服务。

我自己曾经基于stompjs和web-socket-js,做WebSocket兼容到IE5 怪异模式, 当然了stompjs在低版本的IE上有兼容性问题, 而且stompjs已经不再维护了,你可以使用我fork的一个版本,地址是:https://github.com/wangduandu...

主要是老版本IE在正则表达式行为方面有点异常。


      // fix ie8, ie9, RegExp not normal problem
      // in chrome the frames length will be 2, but in ie8, ie9, it well be 1
      // by wdd 20180321
      if (frames.length === 1) {
        frames.push('')
      }

web-socket-js用法示例

  • websocket服务器的843端口还需要部署一个flash的安全策略文件服务
  • 拷贝swfobject.js, web_socket.js, WebSocketMain.swf 到响应的目录下
  • 编写代码如下
<!-- Import JavaScript Libraries. -->
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="web_socket.js"></script>

<script type="text/javascript">
  
  // Let the library know where WebSocketMain.swf is:
  WEB_SOCKET_SWF_LOCATION = "WebSocketMain.swf";
  
  // Write your code in the same way as for native WebSocket:
  var ws = new WebSocket("ws://example.com:10081/");
  ws.onopen = function() {
    ws.send("Hello");  // Sends a message.
  };
  ws.onmessage = function(e) {
    // Receives a message.
    alert(e.data);
  };
  ws.onclose = function() {
    alert("closed");
  };
  
</script>

如果你的WebSocket总是断开,可以参考: https://wdd.js.org/websocket-...

白首有我共你 2022-09-14 11:27:02

楼主这三种方案可都测试通过,我测试的web-socket-js在IE8模式下不支持,找问题找疯了。在github上也没有发现解决方法,

小…红帽 2022-09-14 11:27:02

请问sockjs支持IE9吗?

我不会写诗 2022-09-14 11:27:02

很多低版本的浏览器对 websocket 的支持不是很好,这时候就需要做下向下的兼容,一般是混合采用 websocket+polling 这些来做,还是有些麻烦的。在正式项目中可以考虑采用第三方推送框架比如 GoEasy,这些兼容都是做好了的,也支持 wss 、心跳、重连机制,地址: https://www.goeasy.io/

野稚 2022-09-14 11:27:02

websocket服务器的843端口还需要部署一个flash的安全策略文件服务;
请问这个怎么部署呀?运行报错:make sure the server is running and flash socket policy file is currectly placed

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文