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=>{
      //异步获取答复(会多次回调)
})

视频效果:

代码仓库:

官网:

相关推荐
阿星AI工作室几秒前
一个简单Demo彻底理解前后端怎么连的丨Figma + Supabase + Vercel
前端·人工智能
Drifter_yh4 分钟前
【黑马点评】Redisson 分布式锁核心原理剖析
java·数据库·redis·分布式·spring·缓存
aircrushin8 分钟前
一拍即传的平替,完全免费的实时照片墙!
前端
莫寒清1 小时前
Spring MVC:@RequestParam 注解详解
java·spring·mvc
没有医保李先生2 小时前
字节对齐的总结
java·开发语言
鹏北海2 小时前
JSBridge 原理详解
前端
孟健2 小时前
我的网站被黑了:一天灌入 227 万条垃圾数据,AI 写的代码差点让我社死
前端
anOnion2 小时前
构建无障碍组件之Checkbox pattern
前端·html·交互设计
甲枫叶3 小时前
【claude】Claude Code正式引入Git Worktree原生支持:Agent全面实现并行独立工作
java·人工智能·git·python·ai编程
六件套是我4 小时前
无法访问org.springframeword.beans.factory.annotation.Value
java·开发语言·spring boot