Socket.D 开源网络应用协议,v2.5.9 发布(已有 java, py, js SDK)

Socket.D 协议?

Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。

  • 支持: tcp, udp, ws, kcp 传输。

  • 目前:java,kotlin,javascript,node.js,python,android 语言环境可用。go,rust,c/c++,.net 正在开发中。

最近更新

(1) for Java
  • 添加 静态 spi 加载方式(避免某些打包方案让 java spi 失效)
  • 添加 新的每秒帧流量控制接口 TrafficLimiter
  • 添加 Listener:onReply, onSend 方法,方便帧流量统计
  • 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
  • 添加 SessionUtils 工具类
  • 添加 Session::isActive()
  • 添加 java-websocket 适配子协议验证(避免乱连)
  • 添加 spring-websocket 适配子协议验证(避免乱连)
  • 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
  • 添加 LoadBalancer:isActive 接口
  • 添加 内存占比限制支持
  • 添加 EntityMetas.META_X_UNLIMITED
  • 添加 EntityMetas.META_X_HASH, 另 META_X_Hash 标为弃用
  • 添加 Session::attrDel 接口
  • 添加 ListenerWrapper 类,方便应用定制
  • 优化 java-websocket 适配,增加 header 转移
  • 优化 spring-websocket 适配,增加 header 转移
  • 优化 java-websocket 适配,增加 setReuseAddr(true) 配置
  • 修复 server.stop 后不能自动退出的进程问题
  • 修复 session.close() 后不能自动退出的进程问题
  • smartsocket 升为 1.5.46
(2) for Python
  • 优化 Session::send_alarm 申明,支持 alarm: str|Entity
  • 添加 Listener:onReply, onSend 方法,方便帧流量统计
  • 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
  • 添加 SessionUtils 工具类
  • 添加 Session::isActive()
  • 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
  • 添加 websocket 适配子协议验证(避免乱连)
  • 添加 EntityMetas.META_X_UNLIMITED
  • 优化 流的超时处理
  • 调整 语言版本需求改为 3.10
  • 修复 stream.on_reply 非异步调用出错的问题
(3) for JavaScript
  • 添加 Listener:onReply, onSend 方法,方便帧流量统计
  • 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位
  • 添加 SessionUtils 工具类
  • 添加 Session::isActive()
  • 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
  • 添加 websocket 适配子协议验证(避免乱连)
  • 添加 EntityMetas.META_X_UNLIMITED
  • 添加 提供者手动注册接口
  • 调整 代码结构与 java,python 尽量保持相近
  • 优化 SocketD.newEntity 与小程序的兼容性(小程不支持 File、Blob 类型)
  • 修复 wechat 的环境识别问题
  • 修复 在 ios/android 上检测 TextEncoder 出错的问题(2.3.10 出现的)

视频演示效果:

  • for H5
    • https://www.bilibili.com/video/BV1ck4y197BV/
    • 演示源码
  • for UniAPP
    • https://www.bilibili.com/video/BV1T94y1T7sp/
    • 演示源码

代码仓库:

  • https://gitee.com/noear/socketd
  • https://github.com/noear/socketd

官网:

  • https://socketd.noear.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python不使用元类的ORM实现

不使用元类的简单ORM实现 在 Python 中,ORM(Object-Relational Mapping)是一种将对象和数据库之间的映射关系进行转换的技术,使得通过面向对象的方式来操作数据库更加方便。通常,我们使用元类(metaclass&a…

关于go和rust语言的对比

文章目录 前言Rust 的优势:Go 的优势:总结 前言 Go 和 Rust 是两种现代的系统级编程语言,它们各自拥有独特的特性和应用场景。以下是它们的一些主要区别: Rust 的优势: 内存安全:Rust 引入了所有权和借用…

香橙派5plus上跑云手机方案二 waydroid

前言 上篇文章香橙派5plus上跑云手机方案一 redroid(带硬件加速)说了怎么跑带GPU加速的redroid方案,这篇说下怎么在香橙派下使用Waydroid。 温馨提示 虽然能运行,但是体验下来只能用软件加速,无法使用GPU加速,所有会很卡。而且…

Pat乙级题解

文章目录 1~2021 ~ 4041~6061~8081~100101~125 1~20 1001 害死人不偿命的(3n1)猜想 B1002 写出这个数 (20 分) B1003 我要通过! B1004 成绩排名 1005 继续(3n1)猜想 B1006 换个格式输出整数 B1007 素数对猜想 1008 数组元素循环右移问题 B1009 说反话 1010 一元多项…

linux磁盘分区管理

首先关机状态下,先配置硬盘 硬盘分区管理 识别硬盘 》分区规划 》 格式化 》 挂载使用 [rootlocalhost ~]# lsblk 查看硬盘 分区划分(m帮助, p 查看分区, n 创建分区, d 删除分区, q 退出, w 保存, g gpt分区) [roo…

绝区陆--大语言模型的幻觉问题是如何推动科学创新

介绍 大型语言模型 (LLM)(例如 GPT-4、LLaMA-2、PaLM-2、Claude-2 等)已展示出为各种应用生成类似人类文本的出色能力。然而,LLM 的一个鲜为人知的方面是它们倾向于“产生幻觉”或生成不正确或没有根据的事实陈述。我不认为这仅仅是一个限制…

快速排序算法Python实现

快速排序原理和步骤 快速排序是一种高效的排序算法,基于分治法(Divide and Conquer)来实现。其基本思想是通过一次排序将数组分成两部分,其中一部分的所有元素都小于另一部分,然后递归地对这两部分进行排序。以下是快…

前端构建工具(webpackvite)

这里写目录标题 构建工具webpack介绍配置文件简介entryoutputloaderbabel插件开发服务器(webpack-dev-server)soureMap vite 构建工具 当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:…

夏季户外综合征怎么预防

以下是一些预防夏季户外综合征的有效方法: 做好防晒措施: 涂抹高倍数的防晒霜,每隔 2 - 3 小时重新涂抹一次。比如选择 SPF50、PA 的防晒霜。佩戴宽边帽子、太阳镜和遮阳伞,减少阳光直射面部和眼睛。像渔夫帽、大檐帽能有效遮挡阳…

12-阿里云单细胞处理-PBMC(by-jmzeng)

scRNA_10X/seurat-v2/sup-patient1-PBMC.Rmd at master jmzeng1314/scRNA_10X (github.com) s04-运行seurat流程处理一万个单细胞转录组数据并自动化出报告_哔哩哔哩_bilibili #section 3已更新#「生信技能树」单细胞公开课2021_哔哩哔哩_bilibili 上传读取数据 可以配置租…

模拟型题目

题目类型: 给定操作,允许操作任意次 思路收集: 1.暴力遍历:如Problem - B - Codeforces 直接让每一个不同的进行操作 2.归纳:根据模拟来发现规律

RTK_ROS_导航(4):ROS中空地图的生成与加载

1. 地图加载 构建空白 Map 如下,以下为python代码,生成了output_image.pgm 文件 一般你在什么地方运行该代码,这个文件就生成在什么地方 import numpy as np size = 100 # 单位:m resulition = 0.05 # 单位:mw = round(size / resulition) IMAGE_DATA = np.zeros((w

ChatGPT:Swagger 的疑问

ChatGPT:Swagger 的疑问 这段代码是做什么的,为什么每个微服务的写法都一样 springdoc:api-docs:enabled: true # 1. 是否开启 Swagger 接文档的元数据path: /v3/api-docsswagger-ui:enabled: true # 2.1 是否开启 Swagger 文档的官方 UI 界面path: /sw…

音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据

1、README 前言 本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a&#…

HTTP 范围Range请求

HTTP 的 Range 请求使客户端能够要求服务器仅向其回传 HTTP 消息的一部分 HTTP 的 Range 请求头是 HTTP/1.1 协议的一个特性。它允许客户端请求仅传输资源的某个特定部分,而不是整个资源。 适用场景 支持随机访问的媒体播放器明确只需大型文件某部分的数据处理工具…

2022 RoboCom 世界机器人开发者大赛-高职组(国赛):智能管家

人上了年纪,记性就会变差,时常不得不翻箱倒柜找东西。智能照护中心现在请你做一个简单的智能管家程序,把老人家里的东西逐一编号,放进若干个收纳箱里。当然收纳箱也是有编号的,你的程序要记录下哪个东西放在哪个收纳箱…

R包: phyloseq扩增子统计分析利器

介绍 phyloseq包对多类型数据的综合软件,并其对这些数据提供统计分析和可视化方法。 微生物数据分析的主要挑战之一是如何整合不同类型的数据,从而对其进行生态学、遗传学、系统发育学、多元统计、可视化和检验等分析。同时,由于同行之间需要…

QT学习日记一

创建QT文件步骤 这是创建之后widget.cpp和widget.h文件的具体代码解释,也是主要操作的文件,其中main.cpp不用操作,ui则是图形化操作界面,综合使用时,添加一个元件要注意重编名和编译一下,才能在widget这类…

生产者消费者模型和线程同步问题

文章目录 线程同步概念生产者消费者模型条件变量使用条件变量唤醒条件变量 阻塞队列 线程同步概念 互斥能保证安全,但是仅有安全不够,同步可以更高效的使用资源 生产者消费者模型 下面就基于生产者消费者来深入线程同步等概念: 如何理解生产消费者模型: 以函数调用为例: 两…

[高频 SQL 50 题(基础版)]第一千七百五十七题,可回收且低脂产品

题目: 表:Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | low_fats | enum | | recyclable | enum | ---------------------- product_id 是该表的主键(具有唯…