OpenHarmony网络组件-Mars

项目简介

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

效果演示

编译运行

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

  1. 下载源码

    git clone https://gitee.com/openharmony-sig/mars.git --recurse-submodules

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

相关推荐
我要洋人死29 分钟前
导航栏及下拉菜单的实现
前端·css·css3
龙哥说跨境40 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
科技探秘人40 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人41 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR1 小时前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香1 小时前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q2498596931 小时前
前端预览word、excel、ppt
前端·word·excel
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
小华同学ai1 小时前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书
Gavin_9151 小时前
【JavaScript】模块化开发
前端·javascript·vue.js