### java 适配更新：

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

接口变化：


| 接口变化                     | 描述 |
| ------------------------------------- |  -------- |
| 旧：`session.send(event, entity)`<br/>新：`session.send(event, entity) -> SendStream`     |     发送   |
| 旧：`session.sendAndRequest(event, entity, timeout?, callback)`<br/>新：`session.sendAndRequest(event, entity, timeout?) -> RequestStream`      |     发送并请求（要求1个答复）    |
| 旧：`session.sendAndSubscribe(event, entity, timeout?, callback)`<br/>新：`session.sendAndSubscribe(event, entity, timeout?) -> SubscribeStream`     |    发送并订阅（可接收多个答复）     |

sendAndRequest 的同步调用改为：

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

### javascript 适配更新：

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


新的接口体验（变化与 java 差不多）：

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

