《物聯網應用開發》課件-網絡訪問_第1頁
《物聯網應用開發》課件-網絡訪問_第2頁
《物聯網應用開發》課件-網絡訪問_第3頁
《物聯網應用開發》課件-網絡訪問_第4頁
《物聯網應用開發》課件-網絡訪問_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

網絡訪問物聯網應用開發物聯網應用開發網絡通信基礎Socket通信WebSocket通信HTTP通信1234目錄1網絡通信基礎HarmonyOS為用戶提供了網絡連接功能,具體由網絡管理模塊負責。支持的三種主要的網絡訪問方式:Socket網絡通信、WebSocket連接、HTTP數據請求Socket網絡通信:通過套接字(Socket)進行數據通信,支持的協議包括UDP和TCP。WebSocket網絡通信:利用WebSocket協議創建服務器和客戶端之間的全雙工數據通信。HTTP數據請求:利用超文本傳輸協議(HTTP)向服務器發起數據傳統請求。1網絡通信基礎需要注意的是,在使用網絡管理模塊提供的網絡數據通信服務之前,用戶需要根據具體使用情況,向系統獲取相應的使用權限。與網絡管理模塊相關的服務權限名稱及其解釋如下表。權限名說明ohos.permission.GET_NETWORK_INFO獲取網絡連接信息ohos.permission.INTERNET允許程序打開網絡套接字,進行網絡連接1網絡通信基礎1.1Socket通信基礎Socket(套接字)是數據傳輸網絡中不同應用進程之間進行數據交換的端點。從網絡協議棧的角度來看,Socket位于應用層和傳輸層之間。處于網絡兩端的不同應用層進程,通過Socket指定對方的地址并選擇合適的傳輸層協議,最終實現數據通信。1網絡通信基礎1.1Socket通信基礎一個Socket可以用IP地址和端口號唯一確定,即Socket:=(IP地址:端口號)。盡管不同表示方法使用格式不盡一致,但大多數情況下,IP地址由點分十進制表示的字符串給出,端口號由整數類型數據給出。例如:給定主機IP地址為,占用端口號為49872,則可以得到一個形如(:49872)的Socket。進行數據通信的雙方應用層進程通過Socket找到對方應用層進程實現數據交換。1網絡通信基礎1.1Socket通信基礎常用的Socket有流套接字、數據報套接字以及原始套接字等。1)流套接字使用傳輸層TCP(TransmissionControlProtocol)協議進行數據傳輸,為用戶提供面向連接的可靠字節流傳輸服務。2)數據報套接字使用傳輸層UDP(UserDatagramProtocol)協議進行數據傳輸,為用戶提供無連接的數據報傳輸服務。3)原始套接字能夠對未經內核處理的IP報文進行操作,而與之相對應,流套接字或數據報套接字只能訪問相應協議處理后的報文(即TCP協議和UDP協議)。1網絡通信基礎1.2WebSocket通信基礎2011年IETF通過WebSocket通信協議,即RFC6455標準,隨后又通過RFC7936文件補充。同時,WebSocket也是W2C的標準,并引入HTML5。WebSocket的協議名稱為ws。相較于HTTP,WebSocket具有以下優點:1)WebSocket類似于Socket通信,是一種全雙工通信技。2)WebSocket制定了二進制幀。3)WebSocket支持用戶協議擴展。4)WebSocket是一種狀態的協議,具有更小的通信開銷。1網絡通信基礎1.3HTTP通信基礎萬維網蓬勃的發展離不開以超文本傳輸協議(HyperTextTransferProtocol,HTTP)為代表的Web協議簇的有效支撐。HTTP采用B/S(Browser/Server)架構進行通信,同樣也是一個應用層協議。它基于運輸層TCP協議傳輸數據,并采用了簡潔的請求-響應方式進行交互,即:客戶端根據自身需求發送相應的請求至服務器,而服務器只能根據接收到的客戶端請求發送響應數據。另外,HTTP協議是一種無狀態協議,不會在服務器端保留客戶端狀態。因此,HTTP的模型非常簡單,便于開發、部署。1網絡通信基礎1.3HTTP通信基礎HTTP采用B/S方式通信,并利用URL指定所需資源位置。雙方的通信以HTTP報文的形式進行交互。從客戶端發送到服務器的報文稱為請求報文,而從服務器到客戶端的報文稱為響應報文。請求報文與響應報文的格式十分近似,它們都包括三部分:1)請求行(響應報文中為狀態行):提示是何種請求或響應狀態2)通用信息頭:零或多個緊挨著請求行/狀態行的域。3)包體:在請求報文中,包體中包含客戶端發送給服務器的數據。而在響應報文中,攜帶服務器發送給客戶端的響應數據。2Socket通信ArkTS支持Socket套接字,并支持其中的TCP和UDP兩種協議。如果要進行Socket通信,必須導入@.socket模塊。在通信前,需要創建相應的套接字實例,即TCPSocket或UDPSocket這兩個實例分別由socket.constructTCPSocketInstance方法和socket.constructUDPSocketInstance方法創建。2Socket通信ArkTS提供的用于管理Socekt通信主要接口如下表所示。接口名說明constructUDPSocketInstance()創建一個UDPSocket對象constructTCPSocketInstance()創建一個TCPSocket對象bind()綁定IP地址和端口send()發送數據close()關閉連接getState()獲取Socket狀態connect()連接到指定的IP地址和端口(僅TCP支持)getRemoteAddress()獲取對端Socket地址(僅TCP支持,需要先調用connect方法)2Socket通信注意:可以使用Socket的on方法和off方法來訂閱或取消事件例如onon(type:'message')用來訂閱消息事件,即接收對方發送來消息;用off(type:'message')取消對消息事件的訂閱。可以訂閱或取消的事件有以下幾種:message,close,error,listen,connect2Socket通信TCPSocket通信流程大致如下:1)導入ArkTSSocket通信模塊,即@.socket;2)使用socket.constructTCPSocketInstance方法創建TCPSocket實例;3)根據需要,利用TCPSocket實例中的on方法訂閱TCP通信相關事件信息;4)采用bind方法,為TCPSocket綁定通信監聽IP地址和端口,因為移動端一般為客戶,所以端口可以不明確指定由系統分派;5)采用connect方法,向目的Socket主動發起連接建立;6)連接建立后,采用send方法發送數據;7)通信完畢后,采用close方法斷開TCP連接。2Socket通信下面為一個采用TCPSocket通信的實例代碼框架:importsocketfrom‘@.socket‘//導入模塊lettcp=socket.constructTCPSocketInstance();//生成實例tcp.on(‘xxxx’,data=>{})//訂閱相關事件letbindAddr={address:‘xx’,port:xx,family:xx};letconAddr={address:'xx',port:xx,family:xx};tcp.bind(bindAddr)//綁定地址tcp.connect(conAddr)//連接3WebSocket通信WebSocket為應用層通信協議。WebSocket通過TCP協議進行數據交互。相較于HTTP,WebSocket是一種有狀態的全雙工通信方式。開發中,要進行WebSocket通信,首先要導入.webSocket模塊然后調用createWebSocket方法生成WebSocket通信類實例3WebSocket通信與Socket通信類使用過程大致類似,生成WebSocket實例后,先調用connect方法建立通信雙方的全雙工連接。需要注意,用戶需要通過on方法訂閱open事件,才能接收到connect成功建立連接的消息。當用戶得知連接成功建立后,就可以通過send方法發送數據給對方,或通過on方法訂閱message事件,接收對方發來的數據。通信結束后,用戶需使用close方法主動關閉連接。同樣,close方法成功關閉的消息將通過on方法訂閱close事件來獲取。另外,WebSocket在通信過程中發生的任何錯誤信息,都將通過on方法訂閱error事件來獲取。3WebSocket通信WebSocket通信模塊在庫@.webSocket中實現,主要接口及其功能如表所示。需要注意的是,若要使用該庫,需要申請ohos.permission.INTERNET權限。接口名說明createWebSocket()創建一個WebSocket連接connect()根據URL地址,建立一個WebSocket連接send()通過WebSocket連接發送數據close()關閉WebSocket連接3WebSocket通信采用ArkTS進行WebSocket開發的基本流程如下:1)首先要導入@.webSocket模塊;2)調用createWebSocket方法創建WebSocket通信類實例;3)通過WebSocket實例的on方法訂閱所需事件,諸如“connect”,“close”,“error”等;4)通過connect方法建立與給定URL地址之間的連接;5)數據交互完畢后,調用close方法主動關閉WebSocket連接。3WebSocket通信在ArkTS中進行WebSocket通信框架示例如下importwebSocketfrom‘@.webSocket’;//引入庫varurl=“xx://xxx”;//定義URLletwebsocket=webSocket.createWebSocket();//生成實例letopen_callback=;//定義open事件回調函數websocket.on(‘open’,open_callback);//訂閱open事件letmsg_callback//定義message事件回調函數websocket.on(‘message’,msg_callback);//訂閱message事件letconnect_callback//定義connect事件函數websocket.connect(url,connect_callback);//連接指定URL.4HTTP通信HTTP為應用層協議,通過運輸層的TCP協議建立連接、傳輸數據。HTTP采用B/S方式通信,通信數據以報文的形式進行傳輸。HTTP的一次事務包括一個請求報文和一個響應報文。要使用ArkTS中的HTTP通信,需要導入@.http模塊,并調用createHttp方法創建一個HTTP通信類實例,即該方法會返回一個HttpRequest對象實例。注意,每個HttpRequest實例對應一個HTTP請求,如果要發起多個HTTP請求,需要為每個HTTP請求生成一個HttpRequest實例。另外,要使用HTTP通信,需要獲得ohos.permission.INTERNET權限。4HTTP通信模塊http中常用的接口說明如下表所示接口名說明createHttp()創建一個http請求request()根據URL地址,發起HTTP網絡請求destroy()中斷請求任務on(type:'headersReceive')訂閱HTTPResponseHeader事件off(type:'headersReceive')取消訂閱HTTPResponseHeader事件4HTTP通信基于ArkTS開發HTTP通信開發的基本流程如下:1)導入@.http模塊;2)調用createHttp方法創建一個HTTP通信類實例;3)根據需要,通過on方法訂閱響應頭時間;4)調用request方法向用戶輸入URL發起一個HTTP請求報文;5)根據需要,處理通信對方的HTTP響應報文。4HTTP通信基于ArkTS的HTTP通信架構示例代碼如下:importhttpfrom‘@.http’;//引入庫lethttpRequest=http.cre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論