浙江房产信息网查询,seo优化的方法,北京京水建设集团有限公司网站,单页面推广网站模版我们在前端接口开发时#xff0c;使用 socket.d 协议有什么好处#xff1a;
功能上可以替代 http 和原生 ws安全#xff01;安全#xff01;安全#xff01;现有的工具想抓包数据#xff0c;难#xff01;难#xff01;难#xff01;#xff08;socket.…我们在前端接口开发时使用 socket.d 协议有什么好处
功能上可以替代 http 和原生 ws安全安全安全现有的工具想抓包数据难难难socket.d 是个新的二进制协议
1、Socket.D 协议特点
基于事件每个消息都可事件路由所谓语义通过元信息进行语义描述流关联性有相关的消息会串成一个流语言无关使用二进制输传数据支持 tcp, ws, udp。支持多语言、多平台断线重连自动连接恢复多路复用一个连接便可允许多个请求和响应消息同时运行双向通讯单链接双向互听互发自动分片数据超出 16Mb大小可配置会自动分片、自动重组udp 除外接口简单是响应式但用回调接口
2、客户端示例代码
使用时可以根据自己的业务对原生接口包装进一步简化使用。
script srcjs/socket.d.js/script
script
//创建单例
const clientSession SocketD.createClient(sd:ws://127.0.0.1:8602/?uap2).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(添加失败);}
})
/scriptSocket.D 有三个发消息的接口
接口说明send像 websocket。多了事件与元信息sendAndRequest像 httpsendAndSubscribe像 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 {SocketMapping(/hello/add)public Result hello(long id, String name) { //{code:200,...}return Result.succeed();}
}4、开源仓库
github: https://github.com/noear/socket.dgitee: https://gitee.com/noear/socket.d