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.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产废端实时音视频监控系统在运输车辆驾驶室中的应用

实时音视频监控系统可通过在运输车辆驾驶室安装音视频摄录设备,实现将运输车辆内部及周围环境音视频数据通过移动网络实时回传指挥中心的功能。 前端摄录设备主要负责采集车内外的视音频信息,为了保障车辆及运输人员 的安全,应合理选择摄录设…

【多线程】定时器 | 线程池 | 实现MyTimer | 实现MyThreadPoll | 工厂模式 | 构造方法 | 参数种类

文章目录 定时器&线程池一、定时器1.标准库中的定时器2.实现定时器 二、线程池1.线程池的概念线程池: 2.标准库当中的线程池工厂模式 Executors 创建线程池1.自适应线程池2.固定数量线程池3.只有单个线程的线程池4.设定延迟时间后执行命令的线程池 ThreadPoolEx…

BNB链融合

BNB Chain融合 BNB Chain目前有BNB智能链(BSC),BNB信标链 BNB信标链:用作质押和投票的治理层,采用BEP-2代币标准BNB智能链(BSC):用作EVM兼容层,提供DApp、DeFi服务、共识层、多链支持和其他Web3…

阿里云服务器上配置Docker 以及常用命令讲解

目录 一、认识docer二、在阿里云服务器上配置Docker三、底层原理4、常用命令(1)Docker中常见镜像命令(2)Docker中常见容器命令(3)日志查看命令(4)进入容器的命令与拷贝命令 一、认识…

【目标检测】Focal Loss

Focal Loss用来解决正负样本不平衡问题,并提升训练过程对困难样本的关注。 在一阶段目标检测算法中,以YOLO v3为例,计算置信度损失(图中第3、4项)时有目标的点少,无目标的点多,两者可能相差百倍…

009 springboot整合mybatis-plus 增删改查 ajax 登录退出accessToken

文章目录 ConfigRegistCenter.javaMybatisplusConfig.javaCustomerController.javaReceiveAddressJsonController.javaCustomer.javaLoginCustomer.javaReceiveAddress.javaJwtInterceptor.javaCustomerMapper.javaReceiveAddressMapper.javaCustomerServiceImpl.javaReceiveAd…

华为OD-C卷-路口最短时间问题[200分]Java 100%

题目描述 假定街道是棋盘型的,每格距离相等,车辆通过每格街道需要时间均为 timePerRoad; 街道的街口(交叉点)有交通灯,灯的周期 T(=lights[row][col])各不相同; 车辆可直行、左转和右转,其中直行和左转需要等相应 T 时间的交通灯才可通行,右转无需等待。 现给出…

【1524】java投票管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 投票管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

Rust入门-所有权与借用

一、为什么、是什么、怎么用 1、为什么Rust要提出一个所有权和借用的概念 所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成为所有编程语言设计的难点之一。 主要分为三种…

java新冠病毒密接者跟踪系统(springboot+mysql源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的新冠病毒密接者跟踪系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 新冠病毒密接者跟…

Java垃圾回收1

1.对象什么时候可以被垃圾器回收 1.垃圾回收的概念 为了让程序员更专注于代码的实现,而不用过多的考虑内存释放的问题,所以, 在Java语言中,有了自动的垃圾回收机制,也就是我们熟悉的GC(Garbage Collection)。 有了垃圾…

2、MATLAB入门常用命令

一、退出和中断 exit和quit:结束MATLAB会话。程序完成,如果没有明确保存,则变量中的数据丢失。 Ctrl c:中断一个MATLAB任务。例如,当MATLAB正在计算或打印时,中断一个任务,但会话并没有结束。…

Flink CDC 整库 / 多表同步至 Kafka 方案(附源码)

本文讨论的方案将是本博客以往介绍的所有关于 CDC 数据同步方案中最贴合实际生产需要的,因为以往介绍的开箱即用方案往往都是一张表对应一个 Kafka Topic,在数据库和数据表数量很大的情况下,这种模式是不实用的,用户真正需要的是:将多张数据表或整个数据库写入到一个 Kafk…

Oracle入门——基础语法篇

01-表空间_用户创建 -- 查看当前用户 select user FROM dual;--创建表空间 --datefile 地址 --size --autoextend on --next create tablespace test datafile c:/data/test.dbf size 100m autoextend on next 10m;--创建用户 default tablespace 默认表空间 create user c##u…

麒麟服务器操作系统自动化安装应答文件制作

原文链接:麒麟服务器操作系统自动化安装应答文件制作 Hello,大家好啊!今天我们将探讨如何为麒麟服务器操作系统制作自动化安装应答文件。在部署大量服务器时,自动化安装是提高效率和确保安装一致性的关键技术。通过使用应答文件&a…

云原生Kubernetes: K8S 1.29版本 部署Kuboard

目录 一、实验 1.环境 2.K8S 1.29版本 部署Kuboard (第一种方式) 3.K8S 1.29版本 部署Kuboard (第二种方式) 4.K8S 1.29版本 使用Kuboard 二、问题 1.docker如何在node节点间移动镜像 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注ma…

全量知识系统 程序详细设计之 刀具库钩子程序和胶水语言(QA 百度搜索)

Q1. 我们聊聊全量知识系统中的三大套:刀具库、钩子程序和胶水语言 全量知识系统中的三大套——刀具库、钩子程序和胶水语言,在软件开发和系统构建中扮演着至关重要的角色。这些概念在不同的技术背景下可能有所不同,但总体来说,它…

css3中有哪些伪选择器?

CSS3中有以下伪选择器: :active(选中的元素处于活动状态):checked(选中的表单元素):disabled(禁用的表单元素):empty(没有子元素的元素):enabled(可用的表单…

Hive进阶(5)----yarn的资源调度策略

yarn的资源调度策略 YARN(Yet Another Resource Negotiator)是Apache Hadoop的资源管理器。它负责集群资源的管理和作业调度。YARN的资源调度是通过几个关键组件来实现的: ResourceManager(RM):RM是YARN集群…

如何在Python中有效地使用列表推导式和生成器表达式? —— 编写更简洁、高效的代码

列表推导式和生成器表达式是Python中非常强大和常用的工具,可以帮助我们编写更简洁、高效的代码。下面是一些使用列表推导式和生成器表达式的技巧和建议: 使用列表推导式创建新的列表: 从已有的列表中选择满足特定条件的元素:new_…