Solon

Socket.D 介绍 (v2)

</> markdown

Sokcet.D 是基于事件和语义消息流的网络应用协议。

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

主要特性

  • 基于事件,每个消息都可事件路由
  • 所谓语义,通过元信息进行语义描述
  • 流关联性,来回相关的消息会串成一个流
  • 语言无关,使用二进制输传数据(支持 tcp, ws, udp)。支持多语言、多平台
  • 断线重连,自动连接恢复
  • 多路复用,一个连接便可允许多个请求和响应消息同时运行
  • 双向通讯,单链接双向互听互发
  • 自动分片,数据超出 16Mb,会自动分片、自动重组(udp 除外)
  • 接口简单,是响应式但用回调接口

与其它协议的简单对比

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

简单的协议说明(详见:官网)

  • 连接地址风格
sd:tcp://19.10.2.3:9812/path?u=noear&t=1234
sd:udp://19.10.2.3:9812/path?u=noear&t=1234
sd:ws://19.10.2.3:1023/path?u=noear&t=1234
  • 帧码结构
//udp only <2k
[len:int][flag:int][sid:str(<64)][\n][event:str(<512)][\n][metaString:str(<4k)][\n][data:byte(<16m)]