SocketD协议的RPC鉴权模式怎么实现
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"SocketD协议的RPC鉴权模式怎么实现",在日常操作中,相信很多人在SocketD协议的RPC鉴权模式怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年12月02日SocketD协议的RPC鉴权模式怎么实现
这篇文章主要介绍"SocketD协议的RPC鉴权模式怎么实现",在日常操作中,相信很多人在SocketD协议的RPC鉴权模式怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"SocketD协议的RPC鉴权模式怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。
本案在RPC调用模式的基础上增加签权为例演示:
接口定义
Rpc 模式借用了 Nami 做客户端定义(Nami 是 Solon 伴生框架,定位为 Rpc 通用客户端)
@NamiClient("demo:/demoe/rpc")public interface HelloService { @Handshake boolean auth(String sn, String token); String hello(String name);}服务端
//启动服务端public class ServerApp { public static void main(String[] args) { //启动Solon容器(SocketD bean&plugin 由solon容器管理) Solon.start(ServerApp.class, args, app -> app.enableSocketD(true)) .socket("**", (session, message) -> { if (message.flag() != MessageFlag.handshake) { if (session.getHandshaked() == false) { System.out.println("这个客户端很坏,没签权就想发包:("); session.close(); } } }); //.socket(..) 可替代 @ServerEndpoint 使用 }}//定义远程服务组件@Mapping(value = "/demoe/rpc", method = MethodType.SOCKET)@Component(remoting = true)public class HelloServiceImpl implements HelloService { @Override public boolean auth(String sn, String token) { Session session = (Session) Context.current().request(); if ("1".equals(token)) { session.setHandshaked(true); System.out.println("签权成功!"); return true; }else{ session.setHandshaked(false); return false; } } public String hello(String name) { return "name=" + name; }}客户端
//启动客户端public class ClientApp { public static void main(String[] args) throws Throwable { //启动Solon容器(SocketD bean&plugin 由solon容器管理) Solon.start(ClientApp.class, args); //[客户端] 调用 [服务端] 的 rpc // HelloService rpc = SocketD.create("tcp://localhost:28080", HelloService.class); if (rpc.auth("1", "1")) { System.out.println("RPC result: " + rpc.hello("noear")); } }}到此,关于"SocketD协议的RPC鉴权模式怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
模式
客户
客户端
容器
学习
服务
更多
消息
帮助
管理
通信
实用
成功
接下来
二进制
分布式
双向
基础
应用程序
意义
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库环境怎么弄
怎全民奇迹技能数据库
内外部数据库的优缺点
编代码的服务器cpu
项目经理 软件开发 笔试
2021江西网络安全法考试题库
网络安全PGP软件使用
浙江吹塑零件加工管理软件开发
电子商务软件开发方向
my sql是什么类型的数据库
湛江软件开发app
软件开发需要掌握哪些知识
烽火科技武汉 软件开发
网络技术选修教案
市监局网络安全事件应急预案
华为软件开发云平台企业服务
某市光通讯网络技术
2022年热门软件开发
电控软件开发工程师
计算机软件开发建设项目
获得数据库的连接
存储过程需要数据库的数据吗
网络技术进公司
济南网络电视时间服务器异常
中国电信 数据库 手机
李乐言网络安全
服务器怎么淘
学网络安全专业好找工作吗
网络安全课后答案沈鑫
国内服手机厂商服务器