精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
WebSocket 與 Socket 的區(qū)別

準(zhǔn)備:如果不太了解網(wǎng)絡(luò)的朋友可以先看一下我之前寫的文章 需要了解的網(wǎng)絡(luò)協(xié)議

想必大家再做即時(shí)通訊業(yè)務(wù)或需要替代輪訓(xùn)的時(shí)候,肯定聽說(shuō)過(guò) WebSocket 和 Socket 這兩個(gè)東西,我們今天就來(lái)簡(jiǎn)單說(shuō)一下這兩者的區(qū)別。

WebSocket 是什么

WebSocket 是一種在單個(gè) TCP 連接上進(jìn)行全雙工通信的協(xié)議。WebSocket 使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù)。在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次 HTTP 握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

為什么有了 HTTP 還需要 WebSocket?

一般情況下我們使用 HTTP 有一個(gè)很大的缺陷,就是 HTTP 只能由客戶端來(lái)主動(dòng)發(fā)起,如果有需要服務(wù)端主動(dòng)通知的業(yè)務(wù),就需要輪訓(xùn)。輪詢的效率低,非常浪費(fèi)資源。為了解決 Web 端即時(shí)通訊的需求就出現(xiàn)了 WebSocket。

WebSocket(2)--為什么引入WebSocket協(xié)議

兼容性

WebSocket 最早是在 HTML5 標(biāo)準(zhǔn)中的一部分,基本現(xiàn)代瀏覽器都是支持的,都可以直接使用。雖然是 HTML5 的一部分,但是在瀏覽器之外也有相應(yīng)的實(shí)現(xiàn)。比如 Socket.io 這個(gè)庫(kù)支持 Java、C++、Swift、Datr ,Python 的 ws4py,C++ 的WebSocket++ 等等。 服務(wù)端主流的 Web 容器如 Apache、Nginx、Tomcat 也都支持 WebSocket,還有 WebSocket 服務(wù)端框架如 websocketd 等。

Socket 是什么

Unix 中的 Socket

操作系統(tǒng)中也有使用到 Socket 這個(gè)概念用來(lái)進(jìn)行進(jìn)程間通信,它和通常說(shuō)的基于 TCP/IP 的 Socket 概念十分相似,代表了在操作系統(tǒng)中傳輸數(shù)據(jù)的兩方,只是它不再基于網(wǎng)絡(luò)協(xié)議,而是操作系統(tǒng)本身的文件系統(tǒng)。

網(wǎng)絡(luò)中的 Socket

網(wǎng)絡(luò)中的 Socket 并不是什么協(xié)議,而是為了使用 TCP,UDP 而抽象出來(lái)的一層 API,它是位于應(yīng)用層和傳輸層之間的一個(gè)抽象層。Socket 是對(duì) TCP/IP 的封裝;HTTP 是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket 是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。在 Unix 一切皆文件哲學(xué)的思想下,Socket 是一種'打開—讀/寫—關(guān)閉'模式的實(shí)現(xiàn),服務(wù)器和客戶端各自維護(hù)一個(gè)'文件',在建立連接打開后,可以向自己文件寫入內(nèi)容供對(duì)方讀取或者讀取對(duì)方內(nèi)容,通訊結(jié)束時(shí)關(guān)閉文件。所以如果你想基于 TCP/IP 來(lái)構(gòu)建服務(wù),那么 Socket API 可能就是你會(huì)接觸到的API。

WebSocket 與 Socket 的區(qū)別

正如如上所說(shuō):

  1. Socket 是傳輸控制層的接口。用戶可以通過(guò) Socket 來(lái)操作底層 TCP/IP 協(xié)議族通信。
  2. WebSocket 是一個(gè)完整應(yīng)用層協(xié)議。
  3. Socket 更靈活,WebSocket 更易用。
  4. 兩者都能做即時(shí)通訊
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
1小時(shí)教你理解HTTP,TCP,UDP,Socket,WebSocket
搭建即時(shí)通訊服務(wù)器WebSocket,挺容易嘛
Socket、Tcp、Udp、Http 的認(rèn)識(shí)及區(qū)別
網(wǎng)絡(luò)協(xié)議之(Http、Socket、WebSocket)
關(guān)于Socket,看我這幾篇就夠了(三)原來(lái)你是這樣的Websocket
開源移動(dòng)端 IM 框架 MobileIMSDK v6.0 發(fā)布
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 长丰县| 定兴县| 九龙县| 博湖县| 寻乌县| 秦安县| 茂名市| 宁夏| 鹤庆县| 中牟县| 观塘区| 桐城市| 东兴市| 格尔木市| 长兴县| 醴陵市| 蒲城县| 武清区| 辽源市| 濉溪县| 济源市| 巫溪县| 定边县| 澎湖县| 永修县| 江川县| 绥滨县| 上高县| 当阳市| 临颍县| 井冈山市| 贵州省| 晴隆县| 会泽县| 华宁县| 田东县| 鹤山市| 衡东县| 普陀区| 绥芬河市| 鄂托克前旗|