無(wú)論你是前端工程師、后端開(kāi)發(fā)者還是全棧選手,一個(gè)靈活易用的HTTP服務(wù)器工具都是日常開(kāi)發(fā)中的剛需。httpsrv憑借其簡(jiǎn)潔的API、低內(nèi)存占用和高可擴(kuò)展性,已成為眾多開(kāi)發(fā)者構(gòu)建臨時(shí)或生產(chǎn)級(jí)輕量服務(wù)的首選工具。
LuatOS的httpsrv核心庫(kù),讓這一切變得簡(jiǎn)單——專為資源受限的物聯(lián)網(wǎng)設(shè)備設(shè)計(jì),可在支持LuatOS的硬件上,輕松創(chuàng)建一個(gè)用于處理HTTP請(qǐng)求的服務(wù)器。
核心功能:支持基本的HTTP方法(GET、POST、PUT、DELETE 等),并可以處理靜態(tài)文件和動(dòng)態(tài)請(qǐng)求。
適用場(chǎng)景:適合用于本地設(shè)備調(diào)試、簡(jiǎn)單的Web控制界面、數(shù)據(jù)上報(bào)接口等場(chǎng)景,為設(shè)備提供便捷的Web訪問(wèn)能力。
數(shù)量限制:HTTP服務(wù)器同一時(shí)間最多支持1個(gè)客戶端連接,最多支持同時(shí)啟動(dòng)16個(gè)獨(dú)立的HTTP服務(wù)實(shí)例。
目前httpsrv庫(kù)已全面支持LuatOS開(kāi)發(fā)系列模組,可根據(jù)項(xiàng)目實(shí)際需求靈活選型及應(yīng)用。
一、httppsrv庫(kù)使用要點(diǎn)
在LuatOS平臺(tái)上使用httpsrv創(chuàng)建HTTP服務(wù)器時(shí),整體使用流程和不同網(wǎng)絡(luò)環(huán)境下的配置如下:
1.1 整體流程說(shuō)明
1)初始化網(wǎng)絡(luò)
根據(jù)需要使用的網(wǎng)絡(luò)適配器類型,進(jìn)行相應(yīng)的網(wǎng)絡(luò)初始化配置(如設(shè)置WiFi AP參數(shù))。
2)創(chuàng)建回調(diào)函數(shù)
編寫(xiě)HTTP請(qǐng)求處理函數(shù),該函數(shù)將在每次收到客戶端請(qǐng)求時(shí)被調(diào)用。
3)選擇網(wǎng)絡(luò)適配器
確定使用哪種網(wǎng)絡(luò)適配器(WiFi AP、STA或以太網(wǎng))。
4)啟動(dòng)服務(wù)
調(diào)用httpsrv.start() 函數(shù)啟動(dòng)HTTP服務(wù)器。
5)檢查啟動(dòng)結(jié)果
根據(jù)返回值判斷服務(wù)器是否成功啟動(dòng)。
6)獲取并記錄IP地址
獲取服務(wù)器的IP地址,并通過(guò)日志或其他方式告知用戶。
7)處理請(qǐng)求
服務(wù)器開(kāi)始處理來(lái)自客戶端的HTTP請(qǐng)求,調(diào)用之前定義的回調(diào)函數(shù)。
8)停止服務(wù)
當(dāng)不再需要HTTP服務(wù)時(shí),調(diào)用httpsrv.stop() 函數(shù)停止服務(wù),釋放資源。
1.2 不同網(wǎng)絡(luò)環(huán)境配置
1)確定網(wǎng)絡(luò)適配器類型
httpsrv支持多種網(wǎng)絡(luò)適配器,需要根據(jù)實(shí)際使用場(chǎng)景選擇合適的適配器。
WiFi AP模式:通過(guò)socket.LWIP_AP參數(shù)指定,適用于設(shè)備作為Wi-Fi熱點(diǎn)時(shí)提供Web服務(wù)。
WiFi STA模式:設(shè)備作為客戶端連接到外部Wi-Fi網(wǎng)絡(luò)后啟動(dòng)HTTP服務(wù)器。
以太網(wǎng)模式:通過(guò)socket.LWIP_ETH參數(shù)指定,僅適用于支持以太網(wǎng)接口的設(shè)備。
2)不同網(wǎng)卡下的使用方法
httpsrv支持多種網(wǎng)絡(luò)適配器,需要根據(jù)實(shí)際使用場(chǎng)景選擇合適的適配器。
WiFi AP模式:

WiFi STA模式:


以太網(wǎng)模式:

3)服務(wù)器IP地址獲取與使用
httpsrv本身不提供直接設(shè)置服務(wù)器IP地址的功能,服務(wù)器會(huì)自動(dòng)綁定到所選網(wǎng)絡(luò)適配器的所有可用IP地址上。
可以通過(guò)以下方式獲取服務(wù)器的IP地址:

客戶端需要通過(guò)這些IP地址來(lái)訪問(wèn)HTTP服務(wù)器。在實(shí)際應(yīng)用中,建議將獲取到的IP地址通過(guò)日志輸出或顯示在屏幕上,方便用戶訪問(wèn)。
4)多端口同時(shí)服務(wù)
httpsrv支持同時(shí)啟動(dòng)多個(gè)HTTP服務(wù)實(shí)例(最多16個(gè)),可以在不同端口上提供不同的服務(wù)內(nèi)容:

5)服務(wù)停止
當(dāng)不再需要HTTP服務(wù)時(shí),應(yīng)及時(shí)停止以釋放系統(tǒng)資源:

二、httpsrv應(yīng)用示例demo
如何快速上手應(yīng)用?我們已為您準(zhǔn)備好詳細(xì)的示例代碼與實(shí)操教程,輕松開(kāi)始項(xiàng)目開(kāi)發(fā)。
以Air8101工業(yè)引擎為例,最新資料詳見(jiàn)下方鏈接:
最新示例源碼:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8101/demo/httpsrv
實(shí)操教程詳見(jiàn):https://docs.openluat.com/air8101/luatos/app/socket/httpsrv/

今天的內(nèi)容就分享到這里了~
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47812瀏覽量
414737 -
硬件工程
+關(guān)注
關(guān)注
1文章
228瀏覽量
10734 -
嵌入式硬件
+關(guān)注
關(guān)注
1文章
1011瀏覽量
9238
發(fā)布評(píng)論請(qǐng)先 登錄
元服務(wù)發(fā)布配置開(kāi)發(fā)者服務(wù)信息
OPC服務(wù)器開(kāi)發(fā)淺談 — 服務(wù)器模型
Dllite_micro (輕量級(jí)的 AI 推理框架)
Tomcat服務(wù)器簡(jiǎn)介
如何辨別Web服務(wù)器,應(yīng)用程序服務(wù)器,HTTP服務(wù)器
Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析
華為開(kāi)發(fā)者大會(huì)2021—HarmonyOS 應(yīng)用與服務(wù)開(kāi)發(fā)
華為開(kāi)發(fā)者大會(huì)2021智能硬件開(kāi)發(fā)—輕量級(jí)內(nèi)存檢測(cè)工具的解讀
企業(yè)輕量級(jí)云服務(wù)器,華為云云耀云服務(wù)器 L 實(shí)例能幫大忙
華為云云耀云服務(wù)器 L 實(shí)例:輕量級(jí)應(yīng)用服務(wù)器也能有高性能,助力業(yè)務(wù)快速發(fā)展
HFS如何快速搭建http服務(wù)器
華為云耀云服務(wù)器 L 實(shí)例:小程序開(kāi)發(fā)者的智選
華為云 Flexus 云服務(wù)器 X 實(shí)例部署 Mininote 輕量級(jí)筆記工具
華為云 Flexus 云服務(wù)器 X 實(shí)例之 openEuler 系統(tǒng)下部署 emlog 輕量級(jí)博客平臺(tái)
云服務(wù)器 Flexus X 實(shí)例:輕量級(jí) http 服務(wù)器 Tinyhttpd 部署
httpsrv:開(kāi)發(fā)者必備的輕量級(jí)HTTP服務(wù)器工具
評(píng)論