# socket.d **Repository Path**: treelee/socket.d ## Basic Information - **Project Name**: socket.d - **Description**: 基于"事件"和"语义消息""流"的网络应用协议(在微服务、移动应用、物联网等场景,可替代 http、websocket 等) - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://socketd.noear.org - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 114 - **Created**: 2024-05-03 - **Last Updated**: 2024-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

基于事件和语义消息流的网络应用协议

https://socketd.noear.org

Latest-Version Apache 2.0 Java-8~22 Kotlin-8+ JavaScript-es6+ Python-3.12+
gitee star github star


##### 语言: 中文 | [English](README.md)
有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” ### 主要特性 * 基于事件,每个消息都可事件路由 * 所谓语义,通过元信息进行语义描述 * 流关联性,有相关的消息会串成一个流 * 语言无关,使用二进制输传数据(支持 tcp, ws, udp)。支持多语言、多平台 * 断线重连,自动连接恢复 * 多路复用,一个连接便可允许多个请求和响应消息同时运行 * 双向通讯,单链接双向互听互发 * 自动分片,数据超出 16Mb(大小可配置),会自动分片、自动重组(udp 除外) * 接口简单,是响应式但用回调接口 ### 与其它协议的简单对比 | 对比项目 | socket.d | http | websocket | rsocket | socket.io | |-------------|-------------|------|-----------|--------------|-----------| | 发消息(Qos0) | 有 | 无 | 有 | 有 | 有 | | 发送并请求(Qos1) | 有 | 有 | 无 | 有 | 无 | | 发送并订阅 | 有 | 无 | 无 | 有 | 无 | | 答复或响应 | 有 | 有 | 无 | 有 | 无 | | 单连接双向通讯 | 有 | 无 | 有(不便) | 有 | 有(不便) | | 数据分片 | 有 | / | 无 | 有 | 有 | | 断线自动重连 | 有 | / | 无 | 有 | 有 | | 有元信息 | 有 | 有 | 无 | 有 | 无 | | 有事件(或路径) | 有 | 有 | 无 | 无 | 有 | | 有流(或消息关联性) | 有 | 无 | 无 | 有 | 无 | | Broker 模式集群 | 有 | 无 | 无 | 有 | 无 | | 异步 | 异步 | 同步 | 异步 | 异步 | 异步 | | 接口体验 | 经典 | 经典 | 经典 | 响应式(复杂) | 经典 | | 基础传输协议 | tcp, udp, ws | tcp | http | tcp, udp, ws | ws | ### 简单的协议说明(详见:官网) * 连接地址风格 ``` 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)] ``` ### 加入到社区交流群 | QQ交流群:870505482 | 微信交流群(申请时输入:SocketD) | |---------------------------|----------------------------------------| | | ### 官网 https://socketd.noear.org ### 特别感谢JetBrains对开源项目支持 JetBrains