Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
, \) h+ q% b; E8 I
* {" M, x1 }9 \) z" m. h6 @! o通过何种方式检测?比较简单到方式是直接判断全局对象中是否包含WebSocket对象即可: - $(document).ready(function() {0 L D$ I4 L- t1 j+ ]% s9 d
- if( typeof(WebSocket) != "function" ) {4 Q: ~2 _/ t/ u* r' E# h
- $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");
1 {, f8 x4 \1 H# i; K( } - }
, ?/ a: o% ~7 n7 Y; f6 `: M - })* h' K& `7 g6 @# ]& F& Y6 C* n
复制代码
, |. ~8 o d; J3 U _9 i( X) }& I但是这种方法存在局限性。 在 Android 中,即使浏览器不支持 WebSocket ,但是它还是存在这个属性。
所以比较严谨的方式是: - if (typeof WebSocket != 'undefined') {' m' s M3 m6 G
- /*supported*/ 5 Z0 w2 o, ]- j# P8 I
- }
" D5 A" U2 |! L* K! ^- I; G0 z. l4 S
4 z5 E' J! B7 P }5 F- //or) |- T5 K+ B. v
- if (!!window.WebSocket && window.WebSocket.prototype.send) {9 Q+ _- c, N2 b7 Q( v5 X+ r4 C1 i
- /*supported*/
5 `( j# `6 m1 r5 k. o, y1 B9 @$ x9 Z7 [ - }
复制代码
w8 E4 p2 r0 ?" H, a$ q% K |