socket.d.js v2.3.4 支持
Socket.D
是基于"事件"和"语义消息""流"的网络应用层协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。
Socket.D.js 兼容更新说明
是近期发布的 socket.d 协议 js client 实现。经过社区的努力,现已:
- 兼容 h5(浏览器)
- 兼容 uniapp(浏览器、android, ios)
- 兼容 微信小程序(wx 接口)//新增
- 兼容 node.js
Socket.D.js 能力演示:
- 监听(相当于 ws 的增强)
多了事件路由。可以用一个连接,监听不同的业务事件(类似于 http path)。
//打开客户端会话(用 url 形式打开) let session = await SocketD.createClient("sd:ws://127.0.0.1:8602/?token=1b0VsGusEkddgr3d")
.listen(SocketD.newEventListener() .doOnOpen(s -> { //会话打开时 //... }).doOnMessage((s, m) -> { //收到任意消息时 //打印 console.info(m); }).doOn("/demo", (s, m) -> { //收到"/demo"事件的消息时 if (m.isRequest() || m.isSubscribe()) { //答复 s.replyEnd(m, SocketD.newEntity("And you too.")); } })) .open();
- 发送 和 发送文件(并获取进度)
发送相对于 ws 多了元信息。可为数据添加额外的业务标注。发送大数据时,会自动分片(接收端自动聚合)
//发送 session.send("/demo/hello", SocketD.newEntity("hi").metaPut("sender","noear")); //发送文件,且获取发送进度(如果有大数据发送,又需要显示进度)//实际开发,要用 sendAndRequest 接口(以获取接收确认) session.send("/demo/upload", SocketD.newEntity(file)).thenProgress((isSend, val, max)=>{ if(isSend){ //获取发送进度 console.info(`...${val}/${max}`); } });
- 请求 和 下载文件(或大数据块)
这个相当于 ws 有了 ajax 的交互方式
//发送并请求(有点像 ajax) let reply = session.sendAndRequest("/demo/hello", SocketD.newEntity()).thenReply(reply=>{ console.info(reply.dataAsString()); }); //发送并请求,且取接收进度(如果有大数据获取,又需要显示进度) session.sendAndRequest("/demo/download", SocketD.newEntity()).thenProgress((isSend, val, max)=>{ if(!isSend){ //获取接收进度 console.info(`...${val}/${max}`); } }).thenReply(reply=>{ //reply.data()... }).thenError(err=>{ //如果有出错? });
- 订阅 与 流量控制(一般用于流加载)
通过 range(start, size) 指定数据范围,由 sendAndSubscribe 发起订阅,通过 thenReply 多次接收。
//发送并订阅 let entity = SocketD.newEntity().range(5,5).metaPut("videoId","1"); session.sendAndSubscribe("/demo/stream", entity).thenReply(reply=>{ //异步获取答复(会多次回调) })
视频演示效果:
- for H5
- for UniAPP
代码仓库:
官网:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源无代码/低代码平台 NocoBase v0.19,应用流程优化
NocoBase 是一个极易扩展的开源无代码开发平台。 不必投入几年时间、数百万资金研发,花几分钟时间部署 NocoBase,马上拥有一个私有、可控、极易扩展的无代码开发平台。 中文官网:https://cn.nocobase.com/ 新特性 遥测 开发文档:https://docs-cn.nocobase.com/development/server/telemetry 内核 API:https://docs-cn.nocobase.com/api/telemetry/telemetry Prometheus 插件:https://docs-cn.nocobase.com/plugins/telemetry-prometheus 应用的备份和还原 插件文档:https://docs-cn.nocobase.com/plugins/backup-restore 内核优化 命令行的优化 NocoBase 0.19 及以上版本,插件自定义的命令必须放在插件的src/server/commands/*.ts目录下,内容如下: export default function(app) {...
- 下一篇
Terraform 开源分支 OpenTofu 正式发布
经过五十多名开发人员历时四个月的开发,Terraform 开源分支 OpenTofu 现已正式发布,可供生产使用,为 Terraform 用户提供了一条直接的迁移路径。 公告指出,这个版本发布的过程凸显了 OpenTofu 社区驱动的方法以及开源的价值。其中有两个例子值得注意: 一位社区成员提交了一份用于客户端状态加密的 RFC,自 2016 年以来一直试图将其引入 Terraform。 多个关于 OpenTofu 注册表的 RFC 被提交,导致一个比原来快 10 倍且成本更低的架构。 OpenTofu 1.6 版本中有许多令人期待的功能,包括: 改进的测试功能,提升配置和模块的稳定性。 增强的 S3 状态后端,引入新的身份验证方法,与兼容 S3 的存储保持兼容。 全新的提供者和模块注册表,通过简单的拉取请求提供了一个简化的发布流程。 数百项性能增强、错误修复和其他改进。 与此同时,OpenTofu 社区也在不断壮大,拥有数十名开发人员的贡献、数百名活跃的社区成员。该项目还得到了包括 CloudFlare、BuildKite、GitLab 和 Oracle 在内许多企业支持者和技术合作...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案