您现在的位置是:首页 > 文章详情

Socket.D 网络应用协议,v2.1.6 发布

日期:2023-12-06点击:76

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”

与其它协议的简单对比

对比项目 socket.d http websocket rsocket socket.io
发消息(Qos0)
发送并请求(Qos1)
发送并订阅
答复或响应
单连接双向通讯 有(不便) 有(不便)
数据分片 /
断线自动重连 /
有元信息
有事件(或路径)
有流(或消息关联性)
Broker 模式集群
异步 异步 同步 异步 异步 异步
接口体验 经典 经典 经典 响应式(复杂) 经典
基础传输协议 tcp, udp, ws tcp http tcp, udp, ws ws

本次更新

  • 开放 FragmentSize 可配置
  • 添加 Channel::onError 方法(属于内部调整)
  • 添加 ChannelSupporter 接口,并简化 Channel 构造函数(属于内部调整)
  • 添加 SessionWrapper 包装类(便于监视会话的支行)
  • 添加 集群客户端接口及创建方式 SocketD.createClusterClient()
  • 统一客户端与集群客户端接口
  • 统一客户端会话与集群客户端会话接口

新的集群客户端对比示例:

 //单机客户端 ClientSession sessoin = SocketD.createClient("sd:tcp://127.0.0.1:8602") .listen(new EventListener().on("hello", (s, m) -> { System.out.println(m); })) .open(); //集群客户端 ClientSession sessoin = SocketD.createClusterClient("sd:tcp://127.0.0.1:8602", "sd:tcp://127.0.0.1:8603", "sd:tcp://127.0.0.1:8604") .listen(new EventListener().on("hello", (s, m) -> { System.out.println(m); })) .open(); 

Brokeer 集群示例:

 public class Demo07_Broker { public static void main(String[] args) throws IOException { //创建 broker 服务 SocketD.createServer("sd:tcp") .config(c -> c.port(8602).fragmentHandler(new BrokerFragmentHandler())) .listen(new BrokerListener()) .start(); //创建服务并加入 broker 集群 SocketD.createClient("sd:tcp://127.0.0.1:8602/?@=server") .listen(new EventListener().on("hello", (s, m) -> { System.out.println("Server0: " + m); if (m.isSubscribe() || m.isRequest()) { s.replyEnd(m, new StringEntity("me to!" + m.dataAsString())); } })) .open(); } } 

代码仓库

原文链接:https://www.oschina.net/news/269731/socketd-2-1-6-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章