WebSocket概念及工作原理

一、WebSocket是什么?

webSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。

WebSocket同样是HTML5规范的组成部分之一,用一句话概括就是:客户端向WebSocket服务器通知(notify)一个带有所有接收者ID的事件(event),服务器接收后立即通知所有活跃的(active)客户端,只有ID在接收者ID序列中的客户端会处理这个事件。由于WebSocket本身基于TCP协议的,多以在服务器端我们可以采用构建TCP Socket服务器的方式来构建WebSocket服务器。

WebSocket是一种全新的协议。它将TCP的Socket(套接字)应用在了web page上,从而使通信双方建立起一个保持在活动状态连接通道,并且属于全双工(双方同时进行双向通信)。

它的最大特点是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器端发送信息,是真正的双向平等对话,属于服务器推送技术的一种,其他特点包括:

1)建立在TCP协议之上,服务器端的实现比较容易。

2)与HTTP协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用HTTP协议,因此握手时不容易屏蔽,能通过各种HTTP代理服务器。

3)数据格式比较轻量,性能开销小,通信高效。

4)可以发送文本,也可以发送二进制数据。

5)没有同源限制,客户端可以与任意服务器通信

6)协议标识是ws(如果加密,则为wss),服务器网址就是URL。

二、协议

WebSocket协议被设计来取代现有的使用HTTP作为传输层的双向通信技术,并受益于现有的基础设施(代理,过滤,身份验证)。

TCP/IP协议

TCP/IP协议是目前应用最为广泛的协议,是构成Internet国际互联网协议的最为基础的协议,由TCP和IP协议组成。

TCP协议:面向连接的,可靠的。基于字节流的传输层通信协议,负责数据的可靠性传输的问题。

IP协议:用于报文交换网络的一种面向数据的协议,主要负责给每台网络设备一个网址地址,保证数据传输到正确的目的地。

UDP协议:无连接、不可靠、基于报文的传输层协议,优点是发送后不用管,速度比TCP快。

三、双向通信与消息推送

1)轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

优点:后端程序编写比较容易

缺点:请求中有大半是无用,浪费带宽和服务器资源。

实例:适用于小型应用。

2)长轮询:客户端向服务器端发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求

优点:在无消息的情况下不会频繁的请求,耗费资小

缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。Comet异步的ashx

实例:WebQQ、Hi网页版、Facebook IM。

3)长连接:在页面里嵌入一个隐藏iframe,将这个隐藏iframe的src属性设为对一个长连接的请求或是采用XHR请求,服务器端就能源源不断地往客户端输入数据。。

优点:消息即时到达,不发无用请求,管理起来也相对方便

缺点:服务器维护一个长连接会增加开销

实例:Gmail聊天

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值