雲函數 Web Function 能力推出後,對於原生框架的無改造直接部署,在性能和開發流程上,都受到了衆多開發者的好評。在一期能力的基礎上,Web Function 現已支持 WebSocket 協議,實現客戶端和函數運行的服務端間建立長連接。
01. 工作原理
1. 服務啓動與連接建立
與 HTTP 協議一樣,Web 函數支持在官方或自定義的運行環境中,使用啓動文件啓動 WebSocket 服務器,並在指定端口(9000)上進行監聽,通過前端 API 網關提供的 WS 路徑,接收到客戶端連接請求後,完成連接的建立。
連接建立後,客戶端及服務端按 WebSocket協議進行正常通訊。
2. WebSocket 連接生命週期
在 Web 函數的 WebSocket 支持的情況下, WebSocket 一次連接的生命週期,等同於一次函數調用請求;WS 連接建立過程等同於請求發起階段,WS 連接斷開等同於請求結束。
02. 控制檯部署體驗
在通過控制檯創建函數時,可以通過選擇自定義創建、選擇 Web 函數、展開高級配置來看到協議支持選項。
通過勾選 WebSocket 支持,配置好 WebSocket 空閒超時時間,來完成 WebSocket 協議支持。
同時在勾選 WebSocket 支持後,API 網關的協議支持同樣將自動切換爲 WS&WSS 支持,創建的 API 網關所提供的鏈接地址,也將是 WebSocket 地址。
在完成創建後,WebSocket 的協議支持不可取消,但可以根據需求修改空閒超時時間配置。
03. 示例代碼
目前可以通過如下的 Demo 代碼來創建函數,體驗 WebSocket 效果:
-
Python 示例:使用 WebSockets 庫實現 WebSocket 服務端;
-
Node.js 示例:使用 WebSockets 庫實現 WebSocket 服務端;
-
WebSockets 庫:https://github.com/websockets/ws
04. 雲函數 WebSocket 內測體驗
現已開啓內測,點擊填寫信息,立即申請體驗!
Web Function 使用體驗
-
Web Function 產品文檔:
-
Web Function 快速體驗鏈接:
https://console.cloud.tencent.com/scf/list-create?rid=16&ns=default&keyword=WebFunc
當前已在國內各大區域發佈上線,歡迎體驗使用!
One More Thing
立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 騰訊雲 Serverless 新手體驗
歡迎訪問:Serverless 中文網!