Socket.D 像 Ajax 一样开发前端接口
我们在"前端接口"开发时,使用 socket.d 协议有什么好处:
- 功能上可以替代 http 和原生 ws
- 更安全!现有的工具想抓包数据,难!难!难!(socket.d 是个新的二进制协议)
1、Socket.D 协议特点
- 基于事件,每个消息都可事件路由
- 所谓语义,通过元信息进行语义描述
- 流关联性,有相关的消息会串成一个流
- 语言无关,使用二进制输传数据(支持 tcp, ws, udp)。支持多语言、多平台
- 断线重连,自动连接恢复
- 多路复用,一个连接便可允许多个请求和响应消息同时运行
- 双向通讯,单链接双向互听互发
- 自动分片,数据超出 16Mb(大小可配置),会自动分片、自动重组(udp 除外)
- 接口简单,是响应式但用回调接口
2、客户端示例代码
使用时,可以根据自己的业务对原生接口包装,进一步简化使用。
<script src="js/socket.d.js"></script> <script> //创建单例 const clientSession = SocketD.createClient("sd:ws://127.0.0.1:8602/?u=a&p=2")
.open(); //添加用户(加个内容类型,方便与 Mvc 对接) const entity = SocketD.newEntity("{id:1,name:'noear'}").metaPut("Content-Type","text/json"), clientSession.sendAndRequest("/user/add", entity, reply=>{ const rst = JSON.parse(reply.dataAsString()); if(rst.code == 200){ alert("添加成功!"); }else{ alert("添加失败"); } }) </script>
Socket.D 有三个发消息的接口:
接口 | 说明 |
---|---|
send | 像 websocket。多了事件与元信息属性 |
sendAndRequest | 像 http |
sendAndSubscribe | 像 reactive stream 。多了事件与元信息属性 |
3、服务端示例代码
- 原生接口风格
public class Demo { public static void main(String[] args) throws Throwable { //创建监听器 Listener listener = new EventListener().doOnOpen(s->{ //鉴权 if("a".equals(s.param("u")) == false){ s.close(); } }).doOn("/user/add", (s,m)->{ if(m.isRequest()){ s.reply(m, new StringEntity("{\"code\":200}")); } }); //启动服务 SocketD.createServer("sd:ws") .config(c -> c.port(8602)) .listen(listener) .start(); } }
- Mvc 接口风格
具体参考 solon 的集成效果:https://solon.noear.org/article/652
//控制器 @Controller public class HelloController { @Socket @Mapping("/hello/add") public Result hello(long id, String name) { //{code:200,...} return Result.succeed(); } }
4、开源仓库

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
工信部开展“信号升格”专项行动:实现 4G、5G 信号显著增强
日前,工业和信息化部等十一部门联合印发《关于开展“信号升格”专项行动的通知》,提出将实现移动网络(4G和5G)信号显著增强,移动用户端到端业务感知明显提升。 https://www.miit.gov.cn/jgsj/txs/wjfb/art/2024/art_bfe2eef884394f38a128b8ffac377c9b.html 今日,官方公布了此次“信号升格”专项行动一图介绍,重点信息一目了然。 据介绍,到2024年底,超过8万个重点场所实现移动网络深度覆盖,2.5万公里铁路和35万公里公路、150条地铁线路实现移动网络连续覆盖。 移动网络下行均值接入速率不低于200Mbps,上行均值接入速率不低于40Mbps,卡顿、时延等主要业务指标加快改善,移动网络达标速率占比不低于90%。 到2025年底,超过12万个重点场所实现移动网络深度覆盖、3万公里铁路和50万公里公路、200条地铁线路实现移动网络连续覆盖。5G网络覆盖深度和广度持续完善,5G流量占比显著提升。 另外,移动网络下行均值接入速率不低于220Mbps,上行均值接入速率不低于45Mbps,卡顿、时延等主要业务指标全面优化,...
- 下一篇
Windows 主管承诺改进:让开始菜单再次伟大
一名 Windows 用户近日在网上发文吐槽,建议官方“修复开始菜单”,以便在无需额外点击"all apps"的情况下即可滚动所有应用程序。Windows 主管 Mikhail Parakhin 则在此推文下表达了赞同,承认“开始菜单”需要改进: “说得太对了!我也很恼火。推动团队--我们需要让开始菜单再次伟大。” Mikhail Parakhin 于今年 9 月被任命为微软 Windows 和网络体验团队的新主管,近期一直活跃在网上回应 Windows 用户所提出的反馈和意见。包括还回复了有关修改 Windows 登录界面、应用程序切换以及任务栏定位选项等方面的投诉。 微软在 Windows 95 中引入了"开始"菜单,并在 Windows XP 和 Windows 7 中将其推向了顶峰;但随后的 Windows 8 试图取消"开始"菜单,转而使用类似 Windows Phone 的全屏平铺式菜单。 Windows Insider 版本很快就会恢复,这将是 Parakhin处理有关 Windows 11"开始"菜单的投诉是否会有结果的第一个指标。外媒 The Register 认为,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果