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

相關推薦

2023-12-05

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流关联性,有相关的消息会串成一个流 语言无关,使用二进制输传数据

2023-12-19

网络通讯协议(官方的讲法是:基于事件和语义消息流的网络应用协议),能够满足很多场景下使用。其次,Scoket.D 是温和的响应式(采用回调风格)。 1、三种通讯模式 send 只是发送(发送后不管了) 发送一个请求,无

2024-07-25

Socket.D 协议? Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript

2024-02-09

Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go,

2024-01-04

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流关联性,来回相关的消息会串成一个流 语言无关,使用二进制输传数

2024-07-10

Socket.D 协议? Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript

2024-04-30

Socket.D 协议? Socket.D 是一个网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript,node.js,python,android 语

2024-03-09

Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go,

2024-01-12

Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 Socket.D.js 兼容更新说明 是近期发布的 socket.d

2024-04-25

Socket.D 协议? Socket.D 是一个网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript,node.js,python 语言环境可

2024-01-31

Socket.D 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go, rust, c

2024-01-23

Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go, rust, c++ 正

2024-01-10

于事件和语义消息流的网络应用层协议。 有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流

2023-07-01

Karafka v2.1.6 现已发布。Krafka 是一个用于简化基于 Apache Kafka 的 Ruby 应用开发的框架,它允许开发者在使用异步 Kafka 消息时使用类似于标准 HTTP 约定(params 和 params_batch)的方法。Karafka 不仅可以处理传入的消息,而且还提供