您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 15869|回复: 0
打印 上一主题 下一主题

[js学习资料] 判断浏览器是否支持Websocket

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
! s) ^$ v4 L  U0 a
2 l& E0 V$ t) A+ \9 r6 ?! S$ S通过何种方式检测?

比较简单到方式是直接判断全局对象中是否包含WebSocket对象即可:

  1. $(document).ready(function() {# x- ]5 G& X. Q5 s+ M
  2.   if( typeof(WebSocket) != "function" ) {
    : q$ K; {) Y" Z' D2 R( ?
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");
    0 v9 b" G# k* N: C& [
  4.   }
    9 q/ Q7 [& h! _
  5. })0 B- S1 Z: K3 c1 L0 O, s4 Q
复制代码
3 V7 P" H# K& R, [; Z; B) ^' D2 V

但是这种方法存在局限性。

在 Android 中,即使浏览器不支持 WebSocket ,但是它还是存在这个属性。

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {
    5 {# Z* l. e; A% h9 |1 `
  2.     /*supported*/
    2 A6 S$ H. H9 x# ?% p- m
  3. }
    1 p$ G0 m; D% ~

  4. : d6 g' T' s& a  R
  5. //or
    0 o* E4 q( X8 U! ~( W9 d7 G
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {% G& N* a" d# S
  7.     /*supported*/
    ' ~! b9 Y+ {+ _) }! y: @+ H+ }% a
  8. }
复制代码
% Z; k$ R* u8 r  Z. V! H3 @8 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 22:44 , Processed in 0.062710 second(s), 22 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!