Socket.D v2.3 发布(打通前端与后端)

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

有用户说,"Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http"。支持 tcp, udp, ws, kcp 传输。

主要特性

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

Java 适配更新(兼容 server 与 android):

  • 新增 SendStream,RequestStream,SubscribeStream 三个流接口。强化流接口体验
  • 添加 基于流接口,实现数据上传与下载的进度通知机制
  • 添加 基于流接口,实现异常通知机制
  • 调整 send 接口体验,基于流接口改造
  • smartsocket 升为 1.5.41
接口变化 描述
旧:session.send(event, entity) 新:session.send(event, entity) -> SendStream 发送
旧:session.sendAndRequest(event, entity, timeout?, callback) 新:session.sendAndRequest(event, entity, timeout?) -> RequestStream 发送并请求(要求1个答复)
旧:session.sendAndSubscribe(event, entity, timeout?, callback) 新:session.sendAndSubscribe(event, entity, timeout?) -> SubscribeStream 发送并订阅(可接收多个答复)

Javascript 适配更新(兼容 h5, uniapp, node.js):

  • 新增 SendStream,RequestStream,SubscribeStream 三个流接口。强化流接口体验
  • 添加 基于流接口,实现数据上传与下载的进度通知机制
  • 添加 基于流接口,实现异常通知机制
  • 调整 send 接口体验,基于流接口改造
javascript 复制代码
//发送
session.send("/demo/hello", SocketD.newEntity("hi"));
//发送,且获取发送进度(如果有大数据发送,又需要显示进度)
session.send("/demo/upload", SocketD.newEntity(file)).thenProgress((isSend, val, max)=>{
    if(isSend){
        //获取发送进度
    }
});

//发送并请求,且同步等待
let reply = session.sendAndRequest("/demo/hello", SocketD.newEntity()).await();
//发送并请求,且取接收进度(如果有大数据获取,又需要显示进度)
session.sendAndRequest("/demo/download", SocketD.newEntity()).thenProgress((isSend, val, max)=>{
    if(!isSend){
        //获取接收进度
    }
}).thenReply(reply=>{
      //异步获取答复
}).thenError(err=>{
      //如果有出错?
});

//发送并订阅
let entity = SocketD.newEntity().metaPut("videoId","1").meatPut("start","5").meatPut("size","5");
session.sendAndSubscribe("/demo/stream", entity).thenReply(reply=>{
      //异步获取答复(会多次回调)
})

视频效果:

代码仓库:

官网:

相关推荐
代码山河14 小时前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目
小天源15 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
Escalating_xu16 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
程序猿乐锅16 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
Highcharts.js16 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
Java后端的Ai之路16 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
薛定谔的猫-菜鸟程序员17 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron
AntsData17 小时前
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
java·大数据·计算机外设
code2cat17 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
最强小杰17 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai