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.pswp.cn/web/42885.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42885.shtml
英文地址,請注明出處:http://en.pswp.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 是該表的主鍵(具有唯…