博客
关于我
Solon rpc 之 SocketD 协议 - 消息订阅模式
阅读量:441 次
发布时间:2019-03-06

本文共 1350 字,大约阅读时间需要 4 分钟。

Solon rpc 之 SocketD 协议系列

SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。

本案以简单的消息订阅模式为例演示:(即等着你给我来信,例如配置服务的变更通知)

服务端

//启动服务端public class ServerApp {    public static void main(String[] args) {        //启动Solon容器(SocketD bean&plugin 由solon容器管理)        Solon.start(ServerApp.class, args, app -> app.enableSocketD(true));    }}//定义一个给所有会话广播的工具public class SessionUtil {    public static void broadcast(Message message){        for(Session session : SessionManager.socket().getOpenSessions()){            session.send(message);        }    }    public static void broadcast(String message){        for(Session session : SessionManager.socket().getOpenSessions()){            session.send(message);        }    }}//在需要的地方,进行广播(例如:配置服务的更新通知)SessionUtil.broadcast("Hello client!");

客户端

//启动客户端public class ClientApp {    public static void main(String[] args) throws Throwable {        //启动Solon容器(SocketD bean&plugin 由solon容器管理)        Solon.start(ClientApp.class, args);    }}@ClientEndpoint(uri = "tcp://localhost:28080")public class ClientListener implements Listener {    @Override    public void onMessage(Session session, Message message) {        //收到消息,业务处理        System.out.println("客户端:我收到了:" + message);    }}

附:示例源码

  • 源码:
  • 带签权的源码:

转载地址:http://etwfz.baihongyu.com/

你可能感兴趣的文章
ddr2的上电顺序_S5PV210 DDR2初始化 28个步骤总结
查看>>
java教学团队管理系统(ssm)
查看>>
java教学网站(ssm)
查看>>
java教师管理系统(ssm)
查看>>
java教师课堂助手app(ssm)
查看>>
java教育辅导班信息网(ssm)
查看>>
DDNS动态域名无固定IPSEC配置实战
查看>>
DELL笔记本UEFI+GPT安装window10与Ubuntu双系统
查看>>
Dva员工增删改查Demo实现-优化
查看>>
EasyUi的使用与代码编写(一)
查看>>
Ehcache Java开源缓存框架
查看>>
el-select下拉框修改背景色
查看>>
ElasticSearch - 基于 JavaRestClient 操作索引库和文档
查看>>
ElasticSearch - 索引库和文档相关命令操作
查看>>
elasticsearch 7.7.0 单节点配置x-pack
查看>>
Elasticsearch 之(16)_filter执行原理深度剖析(bitset机制与caching机制)
查看>>
Elasticsearch 时区问题
查看>>
Elasticsearch 索引字段类型为text,添加keyword类型操作
查看>>
Elasticsearch7.3.1启动指定JDK11
查看>>
Elasticsearch下载安装
查看>>