对于物联网(iot,internet of things),最重要的是在互联网中设备与设备的通讯,现在物联网在internet通信中比较常见的通讯协议包括:http、websocket、socket、mqtt、xmpp、coap。
今天我们就来谈谈websocket和socket之前的区别。
在互联网时代,tcp/ip协议已经一统江湖,现在的物联网的通信架构也是构建在传统互联网基础架构之上。在当前的互联网通信协议中,http协议由于开发成本低,开放程度高,几乎占据大半江山,所以很多厂商在构建物联网系统时也基于http协议进行开发。包括google主导的physic web项目,都是期望在传统web技术基础上构建物联网协议标准。
websocket是一个可行的办法。websocket是html5提出的基于tcp之上的可支持全双工通信的协议标准,其在设计上基本遵循http的思路,对于基于http协议的物联网系统是一个很好的补充。
websocket 是为了满足基于 web 的日益增长的实时通信需求而产生的。在传统的 web 中,要实现实时通信,通用的方式是采用 http 协议不断发送请求。但这种方式即浪费带宽(http head 是比较大的),又消耗服务器 cpu 占用(没有信息也要接受请求)。
而socket 其实并不是一个协议。它工作在 osi 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般是 tcp 或 udp )而存在的一个抽象层。
最早的一套 socket api 是 berkeley sockets ,采用 c 语言实现。它是 socket 的事实标准,posix sockets 是基于它构建的,多种编程语言都遵循这套 api,在 java、python 中都能看到这套 api 的影子。
socket是应用层与tcp/ip协议族通信的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个门面模式,它把复杂的tcp/ip协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。
而 websocket 则不同,它是一个完整的 应用层协议,包含一套标准的 api 。
所以,从使用上来说,websocket 更易用,而 socket 更灵活。
可以把websocket想象成http(应用层),http和socket什么关系,websocket和socket就是什么关系。
http 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。
websocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。
官方微博
官方微信
电话:0951-5988193(8:30-17:30)
邮箱:master@yuhaosoft.com.cn
24h:170 4590 8881、170 4590 6999
地址:银川市经济技术开发区富安东巷华通达商务楼203室
z6尊龙平台 copyright @ 昱皓软件. yuhao.ltd