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

有用户说,“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://gitee.com/noear/socketd
  • https://github.com/noear/socketd

相关推荐

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

    2023-12-12 01:24:03       62 阅读
  2. Socket.D 网络应用协议,首版发布

    2023-12-12 01:24:03       59 阅读
  3. Socket.D 开源输传协议 v2.4.0 发布

    2023-12-12 01:24:03       56 阅读
  4. Unity中Socket,Tcp,Udp网络连接协议总结

    2023-12-12 01:24:03       29 阅读
  5. Socket.D v2.3 发布(打通前端与后端)

    2023-12-12 01:24:03       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 01:24:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 01:24:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 01:24:03       82 阅读
  4. Python语言-面向对象

    2023-12-12 01:24:03       91 阅读

热门阅读

  1. tmux常见会话管理命令

    2023-12-12 01:24:03       53 阅读
  2. useMemo和useCallback

    2023-12-12 01:24:03       59 阅读
  3. Vue 3实现的移动端两指控制图片缩放功能

    2023-12-12 01:24:03       71 阅读
  4. 简单实用的firewalld命令

    2023-12-12 01:24:03       45 阅读
  5. 鸿蒙(HarmonyOS)应用开发——web组件

    2023-12-12 01:24:03       63 阅读
  6. leetcode第119场双周赛 - 2023 - 12 - 9

    2023-12-12 01:24:03       62 阅读
  7. Redis研学-认识与安装

    2023-12-12 01:24:03       51 阅读
  8. 力扣373. 查找和最小的 K 对数字

    2023-12-12 01:24:03       51 阅读
  9. 通义千问测试

    2023-12-12 01:24:03       55 阅读
  10. 使用OkHttp上传本地图片及参数

    2023-12-12 01:24:03       58 阅读
  11. 空间信息智能应用团队研究成果与人才引进

    2023-12-12 01:24:03       52 阅读