# mars **Repository Path**: xiaopo_zh/mars ## Basic Information - **Project Name**: mars - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 22 - **Created**: 2024-04-10 - **Last Updated**: 2024-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mars ## 项目简介 Mars 是一个跨平台的网络组件,包括主要用于网络请求中的长连接,短连接,是基于 socket 层的解决方案,在网络调优方面有更好的可控性,暂不支持HTTP协议。 Mars 极大的方便了开发者的开发效率。 ## 效果演示 ![效果演示](preview.png) ## 编译运行 windows和mac请先合入patch,然后再编译此项目,参考以下两步: 1. 下载源码 ````shell git clone https://gitee.com/openharmony-sig/mars.git --recurse-submodules ```` 2. 合入patch ,进入路径:mars/library/src/main/cpp/thirdModule,顺序执行下面的命令即可自动合入patch。 ````shell chmod +x automatically_apply_mars_patch_files.sh ./automatically_apply_mars_patch_files.sh ```` 至此patch合入完成。 ## 下载安装 ```shell ohpm install @ohos/mars ``` OpenHarmony ohpm 环境配置等更多内容,请参考[如何安装 OpenHarmony ohpm 包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md) ## 使用说明: 第一步: 初始化,导入 Mars 组件到自己项目中; ```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调用对应方法; ```mars 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 # 安装使用方法 ``` ## 贡献代码 使用过程中发现任何问题都可以提 [Issue](https://gitee.com/openharmony-sig/mars/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/openharmony-sig/mars/pulls) 。 ## 开源协议 本项目基于 [MIT License](https://gitee.com/openharmony-sig/mars/LICENSE) ,请自由地享受和参与开源。