Socket / WebSocket
Socket
位於OSI 模型的會談層(第 5 層),為了方便使用 TCP 與 UDP 而存在的抽象層。
是一組 API,在設計模式中算是一種 Facade Pattern,
將複雜的 TCP、UDP 隱藏在內部,透過 Socket 層去組織訊息,以符合指定的協議。
WebSocket
是完整的應用層協議,提供全雙工通訊(即為雙向),以 TCP 為底層傳輸。
設計通過 80 和 443 埠工作,以支援 HTTP 代理與中介。
協議規範將 ws (WebSocket) 、wss (WebSocket secure),分為明文、密文連接的協定類型,定義為兩個新的統一資源識別符(URI)。
透過 HTTP 協議進行握手,只需透過一次 TCP 連接,就能一直保持連線。
各式語言
Node.js - Socket.io
Python - ws4py
Apache 支持 - Module mod_proxy_wstunnel
Nginx 支持
Nginx as a WebSockets Proxy
WebSocket Proxying
Nginx Announces Support for WebSocket Protocol
參考資料
https://www.cnblogs.com/jiangzhaowei/p/8781635.html https://zh.wikipedia.org/wiki/WebSocket https://medium.com/enjoy-life-enjoy-coding/javascript-websocket-%E8%AE%93%E5%89%8D%E5%BE%8C%E7%AB%AF%E6%B2%92%E6%9C%89%E8%B7%9D%E9%9B%A2-34536c333e1b
Last updated
Was this helpful?