鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ ie9 ie8 WebSocket支持方案有哪些簡(jiǎn)單可行的?

ie9 ie8 WebSocket支持方案有哪些簡(jiǎn)單可行的?

目前我找到了三個(gè)方案,試下來都不行。

請(qǐng)問有沒有其他簡(jiǎn)單方案?

  • 可以引入進(jìn)來就讓IE9支持WebSocket
  • 或者只需要簡(jiǎn)單的配置就可以,而不需要改動(dòng)任何服務(wù)端的方案
序號(hào) 方案 文檔 實(shí)現(xiàn)技術(shù)
1 jwebsocket http://www.jwebsocket.org/doc... 基于flash
2 web-socket-js https://github.com/gimite/web... 基于flash
3 sockjs-client https://github.com/sockjs/soc... ie9上基于iframe

謝謝!

回答
編輯回答
巫婆

樓主這三種方案可都測(cè)試通過,我測(cè)試的web-socket-js在IE8模式下不支持,找問題找瘋了。在github上也沒有發(fā)現(xiàn)解決方法,

2018年6月28日 11:05
編輯回答
夏夕

測(cè)試下來,web-socket-js簡(jiǎn)直可以兼容到底了。因?yàn)閣eb-socket-js是基于flash的,所以必須要求要求IE8, IE9必須是Flash Player 10 或者更新的版本。

web-socket-js是基于flash的技術(shù),只需要引入兩個(gè)js文件和一個(gè)swf文件,就可以讓瀏覽器用于幾乎原生的WebSocket接口。另外,web-socket-js還是需要在ws服務(wù)端843端口做一個(gè)flash安全策略文件的服務(wù)。

我自己曾經(jīng)基于stompjs和web-socket-js,做WebSocket兼容到IE5 怪異模式, 當(dāng)然了stompjs在低版本的IE上有兼容性問題, 而且stompjs已經(jīng)不再維護(hù)了,你可以使用我fork的一個(gè)版本,地址是:https://github.com/wangduandu...

主要是老版本IE在正則表達(dá)式行為方面有點(diǎn)異常。


      // 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服務(wù)器的843端口還需要部署一個(gè)flash的安全策略文件服務(wù)
  • 拷貝swfobject.js, web_socket.js, WebSocketMain.swf 到響應(yīng)的目錄下
  • 編寫代碼如下
<!-- 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-...

2017年7月27日 06:25
編輯回答
久礙你

請(qǐng)問sockjs支持IE9嗎?

2018年3月9日 10:50