官网站内优化怎么做,网站设置密码怎么破解,网站名字怎样做版权,如今做哪个网站致富Socket.D
是基于事件和语义消息流的网络应用层协议。有用户说#xff0c;“Socket.D 之于 Socket#xff0c;尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。
Socket.D.js 兼容更新说…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/?token1b0VsGusEkddgr3d).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 https://www.bilibili.com/video/BV1ck4y197BV/演示源码 for UniAPP https://www.bilibili.com/video/BV1T94y1T7sp/演示源码
代码仓库
https://gitee.com/noear/socketdhttps://github.com/noear/socketd
官网
https://socketd.noear.org