Socket.D 协议?
Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。
-
支持: tcp, udp, ws, kcp 传输。
-
目前:java,kotlin,javascript,node.js,python,android 语言环境可用。go,rust,c/c++,.net 正在开发中。
最近更新
(1) for Java
- 添加 静态 spi 加载方式(避免某些打包方案让 java spi 失效)
- 添加 新的每秒帧流量控制接口 TrafficLimiter
- 添加 Listener:onReply, onSend 方法,方便帧流量统计
- 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
- 添加 SessionUtils 工具类
- 添加 Session::isActive()
- 添加 java-websocket 适配子协议验证(避免乱连)
- 添加 spring-websocket 适配子协议验证(避免乱连)
- 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
- 添加 LoadBalancer:isActive 接口
- 添加 内存占比限制支持
- 添加 EntityMetas.META_X_UNLIMITED
- 添加 EntityMetas.META_X_HASH, 另 META_X_Hash 标为弃用
- 添加 Session::attrDel 接口
- 添加 ListenerWrapper 类,方便应用定制
- 优化 java-websocket 适配,增加 header 转移
- 优化 spring-websocket 适配,增加 header 转移
- 优化 java-websocket 适配,增加 setReuseAddr(true) 配置
- 修复 server.stop 后不能自动退出的进程问题
- 修复 session.close() 后不能自动退出的进程问题
- smartsocket 升为 1.5.46
(2) for Python
- 优化 Session::send_alarm 申明,支持 alarm: str|Entity
- 添加 Listener:onReply, onSend 方法,方便帧流量统计
- 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
- 添加 SessionUtils 工具类
- 添加 Session::isActive()
- 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
- 添加 websocket 适配子协议验证(避免乱连)
- 添加 EntityMetas.META_X_UNLIMITED
- 优化 流的超时处理
- 调整 语言版本需求改为 3.10
- 修复 stream.on_reply 非异步调用出错的问题
(3) for JavaScript
- 添加 Listener:onReply, onSend 方法,方便帧流量统计
- 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
- 添加 SessionUtils 工具类
- 添加 Session::isActive()
- 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
- 添加 websocket 适配子协议验证(避免乱连)
- 添加 EntityMetas.META_X_UNLIMITED
- 添加 提供者手动注册接口
- 调整 代码结构与 java,python 尽量保持相近
- 优化 SocketD.newEntity 与小程序的兼容性(小程不支持 File、Blob 类型)
- 修复 wechat 的环境识别问题
- 修复 在 ios/android 上检测 TextEncoder 出错的问题(2.3.10 出现的)
视频演示效果:
- for H5
- https://www.bilibili.com/video/BV1ck4y197BV/
- 演示源码
- for UniAPP
- https://www.bilibili.com/video/BV1T94y1T7sp/
- 演示源码
代码仓库:
- https://gitee.com/noear/socketd
- https://github.com/noear/socketd
官网:
- https://socketd.noear.org