2.4.14 • Published 5 days ago

@noear/socket.d v2.4.14

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
5 days ago

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

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

[len:int][flag:int][sid:str(<64)][\n][event:str(<512)][\n][metaString:str(<4k)][\n][data:byte(<16m)]

主要特性

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

体验效果 (for js-client)

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

5 days ago

2.4.13

5 days ago

2.4.12

9 days ago

2.4.11

11 days ago

2.4.10

22 days ago

2.4.9

1 month ago

2.4.8

1 month ago

2.4.7

1 month ago

2.4.6

2 months ago

2.4.5

2 months ago

2.4.4

2 months ago

2.4.3

2 months ago

2.4.1

2 months ago

2.4.2

2 months ago

2.4.0

3 months ago

2.3.12

3 months ago

2.3.11

3 months ago

2.3.10

3 months ago

2.3.9-M1

3 months ago

2.3.9

3 months ago

2.3.8

3 months ago

2.3.7

3 months ago

2.3.6-nn

4 months ago

2.3.6

4 months ago

2.3.5

4 months ago

2.3.4

4 months ago

2.3.4-M3

4 months ago

2.3.4-M1

4 months ago

2.3.4-M2

4 months ago

2.3.1-r16

4 months ago

2.3.1-r14

4 months ago

2.3.1-r12

4 months ago

2.3.1-r13

4 months ago

2.3.3-M1

4 months ago

2.3.1-r13-node

4 months ago

2.3.2

4 months ago

2.3.1

4 months ago

2.3.3

4 months ago

2.3.2-M2

4 months ago

2.3.2-M1

4 months ago

2.3.1-r2

4 months ago

2.3.1-r3

4 months ago

2.3.1-r4

4 months ago

2.3.1-r5

4 months ago

2.3.1-r6

4 months ago

2.3.1-r10

4 months ago

2.3.1-r7

4 months ago

2.3.1-r11

4 months ago

2.3.1-r8

4 months ago

2.3.1-r9

4 months ago

2.3.0

4 months ago

2.2.2-r2

4 months ago

2.2.2

4 months ago