Socket.D v2.5.12

Socket.D v2.3 更新与兼容说明

</> markdown

java 适配更新:

  • 新增 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
发送并订阅(可接收多个答复)

sendAndRequest 的同步调用改为:

session.sendAndRequest(event, entity).await();

javascript 适配更新:

  • 新增 SendStream,RequestStream,SubscribeStream 三个流接口。强化流接口体验
  • 添加 基于流接口,实现数据上传与下载的进度通知机制
  • 添加 基于流接口,实现异常通知机制
  • 调整 send 接口体验,基于流接口改造

新的接口体验(变化与 java 差不多):

//发送
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().range(5,5).metaPut("videoId","1");
session.sendAndSubscribe("/demo/stream", entity).thenReply(reply=>{
      //异步获取答复(会多次回调)
})