app逆向-ratel框架-sekiro框架的安装使用

文章目录

    • 一、前言
    • 二、初次尝试
    • 三、案例测试

一、前言

sekiro主要支持多节点的程序调用,所以他归属于RPC(Remote Procedure Call)框架:API管理、鉴权、分布式、负载均衡、跨语言

开源文档:https://sekiro.iinti.cn/sekiro-doc/

二、初次尝试

demoServer 是 sekiro 商业版的一个分支,他和商业版本的 server 保持相同的协议,但是拥有更少的功能。

在 Linux 或者 mac 上,执行脚本 build_demo_server.sh ,之后得到产出发布压缩包:sekiro-service-demo/target/sekiro-release-demo.zip

如果是 windows,或者不想自己构建,可以在这里直接下载 https://oss.iinti.cn/sekiro/sekiro-demo

安装 java(自行安装)

运行启动脚本:

bin/SekiroMain.sh :mac or linux
bin/SekiroMain.bat :windows

启动效果
在这里插入图片描述
浏览器请求测试:http://127.0.0.1:5612/business/groupList

展示当前系统有那些注册过的group
在这里插入图片描述

三、案例测试

build.gradle 添加依赖

// 依赖
implementation 'com.virjar.sekiro.business:sekiro-business-api:1.4'

编写一个功能代码(根据业务逻辑来写,此处以获取时间戳作为例子):

package com.example.myapplication.handlers;

import com.virjar.sekiro.business.api.interfaze.Action;
import com.virjar.sekiro.business.api.interfaze.RequestHandler;
import com.virjar.sekiro.business.api.interfaze.SekiroRequest;
import com.virjar.sekiro.business.api.interfaze.SekiroResponse;

@Action("clientTime")
public class ClientTimeHandler implements RequestHandler {

    @Override
    public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse) {
        // 根据业务逻辑来写,此处以获取时间戳作为例子
        // 当rpc调用时获取手机当前时间戳返回
        sekiroResponse.success("当前时间:" + System.currentTimeMillis());
    }
}

编写sekiro服务注册代码 MainActivity002.java

package com.example.myapplication;

import android.os.Build;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.example.myapplication.handlers.ClientTimeHandler;
import com.virjar.sekiro.business.api.SekiroClient;
import com.virjar.sekiro.business.api.interfaze.HandlerRegistry;
import com.virjar.sekiro.business.api.interfaze.SekiroRequest;
import com.virjar.sekiro.business.api.interfaze.SekiroRequestInitializer;

public class MainActivity002 extends AppCompatActivity {
    private static final String TAG = "myapplication->";
    // Build类获取系统信息
    private final String client_id = Build.BOARD + " " + Build.MODEL.replace("", "");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main002);

        // 创建客户端
        Log.d(TAG, "手机品牌和手机型号: " + client_id);
        SekiroClient sekiroClient = new SekiroClient("demo", client_id, "192.168.10.9", 5612);
        sekiroClient.setupSekiroRequestInitializer(new SekiroRequestInitializer() {
            @Override
            public void onSekiroRequest(SekiroRequest sekiroRequest, HandlerRegistry handlerRegistry) {
                handlerRegistry.registerSekiroHandler(new ClientTimeHandler());
            }
        });
        sekiroClient.start();
    }
}

打包运行app,并请求rpc接口http://127.0.0.1:5612/business/groupList显示效果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python使用Open3D 对点云重建与c++使用PCL对点云进行重建哪个效率更高

确定哪个库更高效取决于多个因素,包括算法实现、优化程度、硬件配置等。通常情况下,C 的 PCL 库在性能方面可能会比 Python 的 Open3D 库更高,因为 C 语言的编译器可以生成更高效的机器码,并且 PCL 库的底层实现是经过高度优化的。…

C++:模版进阶 | Priority_queue的模拟实现

创作不易,感谢三连支持 一、非类型模版参数 模板参数分类为类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数&…

AIGC启示录:深度解析AIGC技术的现代性与系统性的奇幻旅程

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

LayerNorm的图是不是画错了

这是网上一张很流行的说明几个 Normalization 区别的图 这图出自Kaiming的文章 Group Norm 但是他这个 Layer Norm 的图是不是画错了? 我大四写毕设的时候就想问🤣🤣🤣 这都几年过去了 我觉得图应该是这样画的,相同颜色的区域…

HifiFace: 3D形状和语义先验引导高保真人脸交换阅读笔记

HifiFace: 3D Shape and Semantic Prior Guided High Fidelity Face Swapping HifiFace: 3D形状和语义先验引导高保真人脸交换 介绍 可以很好地保留源人脸的脸型,并产生逼真的结果。不同于现有的人脸交换只使用人脸识别模型来保持身份相似性的方法,我们…

【万题详解】DFS搜索专题合集(上)

专栏推荐 我的专栏——专栏链接 1.文章平均质量分 70分以上 2.以洛谷题为基础,解决C问题 3.有题目、讲解、思路、参考代码…… 4. 文章数:29 (2024.3.8) 课前C小程序(脱控极域电子教室) 这个图标相信…

C语言分析基础排序算法——选择排序

目录 选择排序 选择排序 堆排序 选择排序 选择排序 选择排序的基本思路是,定义两个区间指针begin和end,遍历数组中的每一个数据找出最大的数据的下标和最小的数据的下标,之后与begin和end指针分别交换小数据与begin的位置以及大数据和e…

计算机设计大赛 深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python

文章目录 1 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的驾…

如何保证消息不丢之MQ重试机制消息队列

1. 简介 死信队列,简称:DLX,Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另外一个交换机,这个交换机就是DLX 那么什么情况下会成为Dead message&a…

全球科技创新领域大检阅“2024上海国际智能科技及创新展览会”

随着科技的飞速发展,创新成为了推动社会进步的核心动力。在这样的背景下,“2024上海国际科技及创新展览会”应运而生,旨在汇聚全球智能科技领域的精英,共同展示最新的科技成果,探讨未来的发展方向。 本次展会将于2024年…

Alveo 概念拓扑结构

在 Alveo 加速卡中,涉及到的概念拓扑结构主要包括 Alveo 卡上的各个关键组件以及与主机系统之间的通信结构。以下是对这些概念拓扑结构的简要介绍: 1.DDR 即双数据率内存(Double Data Rate memory),是一种常见的计算机内存类型,用于存储和提供处理器所需的数据和指令。…

HBase安装,配置,启动,检查

目录: 一、HBase安装,配置 1、下载HBase安装包 2、解压,配置环境变量并激活 3、hbase 配置 4、将hadoop和zookeeper的配置文件创建软连接放在hbase配置目录 5、配置 regionserver 二、HBase启动与关闭,安装检验 1、启动关闭hbase的命令 2、 检…

mac本地启动sentinel

启动Sentinel控制台 1)下载sentinel控制台jar包 https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 2)启动sentinel控制台 使用如下命令启动控制台: java -Dserver.port8080 -Dcsp.sentinel.d…

基于单片机的红外测距仪设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 主控制器选择 3 1.2 项目总体设计 3 2 项目硬件设计 5 2.1 单片机控制模块 5 2.2 测距模块设计 9 2.3 液晶显示模块 10 2.4 报警模块 11 3 项目软件设计 12 3.1 软件开发环境 12 3.2 系统主程序设计 13 3.3 LCD显示程…

数智化时代的新潮流:企业如何利用数据飞轮驱动增长?_光点科技

随着数据中台理念的逐渐“降温”,企业数智化的探索并未停歇。反而,数据飞轮成为了新的焦点,它承诺为企业带来更紧密的业务与数据结合,从而推动持续的增长。本文将探讨企业如何利用数据飞轮的概念,赋能业务,…

Spark 核心API

核心 API spark core API 指的是 spark 预定义好的算子。无论是 spark streaming 或者 Spark SQL 都是基于这些最基础的 API 构建起来的。理解这些核心 API 也是写出高效 Spark 代码的基础。 Transformation 转化类的算子是最多的,学会使用这些算子就应付多数的数…

勒索软件事件手册:综合指南

近年来,勒索软件攻击的频率和复杂程度都急剧增加。这些攻击的影响可能是毁灭性的,从经济损失到严重的运营中断。 这就是为什么对于希望防范这种网络安全威胁的企业来说, 强大的勒索软件事件响应手册是不可谈判的。 本指南旨在深入了解勒索软…

【工作实践-07】uniapp关于单位rpx坑

问题:在浏览器页面退出登录按钮上“退出登录”字样消失,而在手机端页面正常;通过查看浏览器页面的HTML代码,发现有“退出登录”这几个字,只不过由于样式问题,这几个字被挤到看不见了。 样式代码中有一行为&#xff1a…

UI自动化测试使用场景及脚本录制

经常有人会问,什么样的项目才适合进行UI自动化测试呢?UI自动化测试相当于模拟手工测试,通过程序去操作页面上的控件。而在实际测试过程中,经常会遇到无法找到控件,或者因控件定义变更而带来的维护成本等问题。 哪些场…

设计高并发系统的关键策略

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 架构设计 1. 微服务架构 2. 分布式架构 3. 负…