版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络访问物联网应用开发物联网应用开发网络通信基础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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版动漫主题咖啡厅设计制作运营合同3篇
- 活动策划执行安排服务无偿合同
- 2024年科技展览摊位租赁合同3篇
- 科技园区网络设施安装合同
- 幼儿园师资培训协议
- 美容院氧气房安全使用条例
- 2025年度文化创意产业设计师聘用合同书3篇
- 水利工程楼宇对讲施工合同
- 地下图书馆降水井施工合同
- 市政工程招投标授权委托专用
- 五金材料采购投标方案(技术方案)
- TB 10752-2018 高速铁路桥涵工程施工质量验收标准
- 客运站春运安全行车教育
- 机械原理课程设计压床机构
- 酒店物品艺术赏析智慧树知到期末考试答案2024年
- 交通运输系统导论智慧树知到期末考试答案2024年
- 乳腺腔镜手术介绍
- 服装的生产方案
- JTGT F20-2015 公路路面基层施工技术细则
- 机械加工厂计划管理
- 太阳能光伏发电系统最大功率点跟踪技术研究
评论
0/150
提交评论