宁夏昱皓軟件咨询热线0951-5988193(8:30-18:00) 170 4590 8881、17045906999(24h)
當前位置:首頁 >> 媒體中心 >> 常見問題 >> 正文
物聯網開發之websocket與socket有哪些區別?
發布時間:2019-11-20
来源: 昱皓軟件
閱讀量:

對于物聯網(IoT,Internet of Things),最重要的是在互联网中设备与设备的通讯,现在物聯網在internet通信中比較常見的通訊協議包括:HTTP、websocket、socket、MQTT、XMPP、COAP。

1.gif

今天我們就來談談websocket和socket之前的區別。


在互聯網時代,TCP/IP協議已經一統江湖,現在的物聯網的通信架構也是構建在傳統互聯網基礎架構之上。在當前的互聯網通信協議中,HTTP協議由于開發成本低,開放程度高,幾乎占據大半江山,所以很多廠商在構建物聯網系统时也基于http协议进行开发。包括google主导的physic web项目,都是期望在传统web技术基础上构建物聯網協議標准。

websocket是一个可行的办法。websocket是HTML5提出的基于TCP之上的可支持全双工通信的协议标准,其在设计上基本遵循HTTP的思路,對于基于HTTP协议的物聯網系統是一個很好的補充。

socket.gif

WebSocket 是为了满足基于 Web 的日益增长的实时通信需求而产生的。在传统的 Web 中,要实现实时通信,通用的方式是采用 HTTP 协议不断发送请求。但这种方式即浪费带宽(HTTP HEAD 是比较大的),又消耗服务器 CPU 占用(没有信息也要接受请求)。


而Socket 其实并不是一个协议。它工作在 OSI 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般是 TCP 或 UDP )而存在的一个抽象层。

最早的一套 Socket API 是 Berkeley sockets ,采用 C 语言实现。它是 Socket 的事实标准,POSIX sockets 是基于它构建的,多种编程语言都遵循这套 API,在 JAVA、Python 中都能看到这套 API 的影子。

1.jpg

Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。

socket-traffic.gif

而 WebSocket 则不同,它是一个完整的 应用层协议,包含一套标准的 API 。

所以,从使用上来说,WebSocket 更易用,而 Socket 更灵活。

2.jpg

可以把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室

Copyright @ 昱皓軟件. YUHAO.LTD  甯ICP備16000928號

您好!您是第999999位訪問本站的人