🎉 Socket.D v2.4.11(新增 python 实现)
Socket.D 协议?
Socket.D 是一个网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。
-
支持: tcp, udp, ws, kcp 传输。
-
目前:java,kotlin,javascript,node.js,python 语言环境可用。go,rust,c/c++,.net 正在开发中。
for Java 更新
- 调整 本端会话关闭时,也触发本端的 onClose 事件
- 优化 ws 连接控制,避免非法恶意空连
- 优化 socketd-transport-java-kcp 服务端停止处理(添加延时,确保指令发送完成)
- 优化 socketd-transport-java-tcp 在某些操作系统下空跑可能 cpu 过高的问题
for JavaScript/Node.js 更新
- 调整 本端会话关闭时,也触发本端的 onClose 事件
- 优化 ws 连接控制,避免非法恶意空连
for Python 首次发布
Helloworld 演示
- Server
async def main():
server = await (SocketD.create_server("sd:ws")
.listen(EventListener()
.do_on_open(lambda s:
#会话打开时
log.info(s.session_id())
).do_on_message(lambda s, m:
#收到任意消息时(方便做统一的日志打印)
log.info(m.data_as_string())
).do_on("/demo", lambda s, m:
#收到"/demo"事件的消息时。如果是请求或订阅?则进行签复
(m.is_request() or m.is_subscribe()) and s.reply_end(m, StringEntity("And you too."))
)).start())
- Client
async def main():
#打开客户端会话,并监听(用 url 形式打开)
session = await (SocketD.create_client("sd🇼🇸//127.0.0.1:8602/?token=1b0VsGusEkddgr3d")
.open())
entity = StringEntity("Hello wrold!").meta_put("sender","noear")
#发送
session.send("/demo", entity)
#发送并请求(且,等待一个答复。否则超时异常)
session.send_and_request("/demo", entity).then_reply(lambda reply:
#打印
log.info(reply.data_as_string())
).then_error(lambda error:
log.error(error)
)
#发送并订阅(且,接收零个或多个答复流)
session.send_and_subscribe("/demo", entity).then_reply(lambda reply:
#打印
log.info(reply.data_as_string()) or (reply.is_end() and log.info("the end!"))
)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
QEMU 9.0 发布
QEMU 9.0 版本现已推出,此版本包含来自 220 位作者的 2700 多项commit。 一些更新亮点包括: block:virtio-blk 现在支持多队列,其中单个磁盘的不同队列可以由不同的 I/O 线程处理 gdbstub:各种改进,例如在用户模式下捕获系统调用、支持 fork-follow 模式以及支持 siginfo:read memory:在某些情况下,现在可以使用多个线程同时处理内存后端的预分配 migration:支持“mapped-ram”功能,实现更高效的虚拟机快照、改进对 zero-page 检测的支持以及对 VFIO 的 checkpoint-restart支持 ARM:为 ECV (Enhanced Counter Virtualization)、NV (Nested Virtualization) 和 NV2 (Enhanced Nested Virtualization) 提供架构特性支持 ARM:对 B-L475E-IOT01A IoT 节点、mp3-an536(MPS3 开发板 + AN536 固件)和 raspi4b(Raspberry Pi ...
-
下一篇
mysql2<3.9.7 代码注入漏洞
漏洞描述 mysql2 是用于操作 MySQL 数据库的高性能Node.js库,可兼容 Node MySQL API、并提供预编译语句、扩展编码等功能。 受影响版本的 readCodeFor 函数在调用 readDateTimeString 函数处理日期时拼接时区参数 timezone,导致代码注入漏洞。 攻击者可构造恶意的时区参数(如:'); payload// )在mysql2客户端中远程执行任意代码。 漏洞名称 mysql2<3.9.7 代码注入漏洞 漏洞类型 代码注入 发现时间 2024-04-23 漏洞影响广度 广 MPS编号 MPS-c0j3-khva CVE编号 CVE-2024-21511 CNVD编号 - 影响范围 mysql2@[0.0.1, 3.9.7) 修复方案 升级mysql2到 3.9.7 或更高版本 参考链接 https://www.oscs1024.com/hd/MPS-c0j3-khva https://nvd.nist.gov/vuln/detail/CVE-2024-21511 https://github.com/sidorares/nod...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Hadoop3单机部署,实现最简伪集群
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,CentOS7官方镜像安装Oracle11G