Socket.D 是一个基于连接的、可扩展的、消息驱动的传输协议。具有异步,自动分片,背压流控,双向通讯,多路复用,断线重连,支持签权,基于主题消息等特性。
- 具有语言无关性的二进制通信协议(支持 tcp, ws, udp)
- 异步非阻塞消息驱动通信
- 可以进行流量控制、自动连接恢复
- 支持双向通信(如:单链接双向 RPC 接口调用)
- 更加适合分布式通信场景
- 支持 ssl,支持国密 ssl
- 消息有由元信息和数据组成,通过元信息实现可扩展性
- 接口简单
开发时,主要交互只有 2 接口对象(更多可见:API.md ):
接口 | 描述 | 说明 |
---|---|---|
listener | 监听器 | (可双向互听) |
session | 会话 | (可双向互发) |
session::send | 发送 | |
session::sendAndRequest | 发送并请求 | 要求一次答复 |
session::sendAndSubscribe | 发送并订阅 | 答复结束之前,不限答复次数 |
session::reply | 答复 | |
session::replyEnd | 答复结束 |
适用场景:
可用于 MSG、RPC、IM、MQ,等一些的场景开发,可替代 http, websocket, grpc 等一些协议。比如移动设备与服务器的连接,比如一些微服务场景等等。