侃一侃WebSocket

  今天不讲太多具体的技术,随便侃一侃WebSocket,想到哪说哪。git

  和comet相比github

  相比comet技术,websocket不只节约了header的问题(websocket的head信息只有短短的2个字节)。更加剧要的是是通讯的稳定性,comet在遇到网络问题以后,想要在不刷新页面的状况下恢复通讯,很是困难,而websocket中提供了onclose函数来处理断开网络后的状况,这为咱们与服务器的通讯提供了可靠的保障。在、github上有一个js库 web

 (https://github.com/joewalnes/reconnecting-websocket)就是经过这种方式来处理websocket断网重连。浏览器

  固然这么好用的websocket也不是没有它的问题,websocket目前来看最大的问题是浏览器的支持(幸亏大部分的服务器软件在比较新的版本中都已经支持了websocket),ie直到10才开始支持这种协议,并且每一个浏览器最近在升级浏览器的时候,都会对websocket作出细微的调整。并且,想象你打开一个页面,当这个页面打开websocket链接而且执行一个内部IP地址的端口扫描,若是端口扫描发现了内部网络上发现了一个开启的80端口,一个隧道就可能经过你的浏览器创建。这样作极可能最终绕过防火墙,而且容许访问内部内容。因此安全问题,也是websocket如今面临的一大隐患。安全

  WebSocket是HTML5出的协议,也就是说HTTP协议没有变化,或者说不要紧,但HTTP是不支持持久链接的(长链接,循环链接的不算)。服务器

首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,可是 Websocket 实际上是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充。有交集,可是并非所有。websocket

  另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议自己只有1.0和1.1,并且跟Html自己没有直接关系。通俗来讲,你能够用HTTP协议传输非Html数据,就是这样。再简单来讲,层级不同。网络

   WebSocket的协议是持久化的,而HTTP是非持久化的协议。socket

   今天说到这里,关于WebSocket的下次咱们接着聊。www.goeasy.io 这家是专门作WebSocket的,有兴趣能够关注一下。函数

相关文章
相关标签/搜索