OpenHarmony网络组件-Mars

2024-04-19 03:28
文章标签 组件 网络 openharmony mars

本文主要是介绍OpenHarmony网络组件-Mars,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目简介

Mars 是一个跨平台的网络组件,包括主要用于网络请求中的长连接,短连接,是基于 socket 层的解决方案,在网络调优方面有更好的可控性,暂不支持HTTP协议。 Mars 极大的方便了开发者的开发效率。

效果演示

编译运行

windows和mac请先合入patch,然后再编译此项目,参考以下两步:

  1. 下载源码
git clone https://gitee.com/openharmony-sig/mars.git --recurse-submodules
  1. 合入patch ,进入路径:mars/library/src/main/cpp/thirdModule,顺序执行下面的命令即可自动合入patch。
chmod +x automatically_apply_mars_patch_files.sh./automatically_apply_mars_patch_files.sh

至此patch合入完成。

下载安装

ohpm install @ohos/mars 

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包

使用说明:

第一步: 初始化,导入 Mars 组件到自己项目中;

...
import { Mars, StnLogic, Xlog, BuildConfig } from '@ohos/Mars/';
import MarsServiceNative from '../wrapper/service/MarsServiceNative';
import MarsServiceProfile from '../wrapper/service/MarsServiceProfile';
import marsnapi from 'libmarsnapi.so';...

第二步:方法调用,通过marsnapi调用对应方法;

marsnapi.BaseEvent_onCreate();
}

接口说明

  • StnLogic.setLonglinkSvrAddr - 设置长链接的DEBUG IP
  • StnLogic.StnLogic_setShortlinkSvrAddr - 设置短链接的DEBUG IP
  • StnLogic.setDebugIP - 设置的DEBUG IP(不区分长/短链接)
  • StnLogic.startTask - 任务启动
  • StnLogic.stopTask - 任务停止
  • StnLogic.hasTask - 判断任务是否存在
  • StnLogic.redoTask - 重做所有长短连任务. 注意这个接口会重连长链接.
  • StnLogic.clearTask - 停止并清除所有未完成任务.
  • StnLogic.reset - 停止并清除所有未完成任务并重新初始化
  • StnLogic.resetAndInitEncoderVersion - 停止并清除所有未完成任务并重新初始化, 重新设置encoder version
  • StnLogic.setBackupIPs - 设置备份IP,用于long/short svr均不可用的场景下
  • StnLogic.makesureLongLinkConnected - 检测长链接状态.如果没有连接上,则会尝试重连.
  • StnLogic.setSignallingStrategy - 信令保活
  • StnLogic.keepSignalling - 发送一个信令保活包
  • StnLogic.stopSignalling - 停止信令保活
  • StnLogic.setClientVersion - 设置客户端版本 放入长连私有协议头部
  • StnLogic.getLoadLibraries - 获取底层已加载模块
  • StnLogic.req2Buf - 网络层获取上层发送的数据内容
  • StnLogic.buf2Resp - 网络层将收到的信令回包交给上层解析
  • StnLogic.trafficData - 上报信令消耗的流量
  • SdtLogic.setCallBack - 设置信令探测回调实例,探测结果将通过该实例通知上层
  • SdtLogic.setHttpNetcheckCGI - 设置一个Http连通状态探测的URI
  • Xlog.logWrite - 日志写入方式1
  • Xlog.logWrite2 - 日志写入方式2
  • Xlog.native_logWrite2 - 自定义日志写入
  • Xlog.setLogLevel - 设置日志等级
  • Xlog.getLogLevel - 获取日志等级
  • Xlog.newXlogInstance - 创建xlog的日志单例
  • Xlog.releaseXlogInstance - 释放xlog的日志单例

约束与限制

在下述版本验证通过:

  • DevEco Studio 版本:4.1Canary(4.1.3.414) , OpenHarmony SDK:API 11 (4.1.0.55)

目录结构

|---- library  
|     |---- cpp  # 示例代码文件夹
|           |---- mars # C++库文件
|     |---- ets
|           |---- sdt  
|                 |---- SdtLogic # sdt对外封装接口
|           |---- stn  
|                 |---- StnLogic # stn对外封装接口
|           |---- xlog # xlog对外封装接口
|                 |---- Xlog # xlog对外封装接口
|---- README.md  # 安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

这篇关于OpenHarmony网络组件-Mars的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/916517

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl