博客
关于我
Solon rpc 之 SocketD 协议 - 消息订阅模式
阅读量:445 次
发布时间: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/

你可能感兴趣的文章
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
MySQL 加锁处理分析
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
MySQL 命令和内置函数
查看>>
mysql 四种存储引擎
查看>>
MySQL 在并发场景下的问题及解决思路
查看>>