文章目录
- 一、前言
- 二、初次尝试
- 三、案例测试
一、前言
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
显示效果: