公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

.NET Core WebSocket實現簡易、高性能、集群即時通訊組件

admin
2023年8月25日 9:15 本文熱度 1227

前言

今天給大家推薦一個.NET Core WebSocket實現簡易、高性能、集群即時通訊組件:FreeIM。

官方組件介紹

FreeIM 使用 WebSocket 協議實現簡易、高性能(單機支持5萬+連接)、集群即時通訊組件,支持點對點通訊、群聊通訊、上線下線事件消息等眾多實用性功能。

WebSocket介紹

WebSocket是一種在Web應用程序和服務器之間建立持久連接的通信協議。它通過在客戶端和服務器之間創建一個全雙工通信通道,實現了服務器主動向客戶端推送數據的功能。

相比起傳統的HTTP請求-響應模式,WebSocket具有以下幾個優勢:

  1. 實時性:WebSocket提供了實時的雙向通信,服務器可以主動推送數據給客戶端,而不需要客戶端發起請求。這使得實時通信應用如聊天室、股票行情等變得更加簡單和高效。

  2. 減少數據傳輸量:WebSocket在建立連接時需要進行握手,之后數據幀的開銷較小,只需要發送少量的控制信息,因此相比于HTTP請求的頭部信息,可以減少數據傳輸的開銷。

  3. 低延遲:由于WebSocket是一個長連接,避免了每次請求都要建立TCP連接的開銷,從而降低了延遲。

  4. 節省服務器資源:WebSocket使用一個TCP連接進行全雙工通信,相比于傳統的HTTP請求,避免了頻繁的連接和關閉操作,減少了服務器的負擔。

  5. 支持跨域通信:WebSocket允許在瀏覽器中通過Javascript與不同域名下的服務器進行通信,實現了跨域通信的功能。

項目源碼截圖

 

設計思路

終端(如瀏覽器/小程序/iOS/android) 統一使用 websocket 連接 ImServer

ImServer(支持集群)根據 clientId 分區管理 websocket 連接;

WebApi 使用 ImHelper 調用方法(如:SendMessage、群聊相關方法),將數據推至 Redis chan;

ImServer 訂閱 Redis chan,收到消息后向 終端 推送消息;

  • 緩解了并發推送消息過多的問題;
  • 解決了連接數過多的問題;
  • 解耦了業務和通訊,架構更加清淅;
    • ImServer 充當消息轉發,連接維護,代碼萬年不變、且不需要重啟維護
    • WebApi 負責所有業務

ImServer 服務端

public void Configure(IApplicationBuilder app)
{
    app.UseFreeImServer(new ImServerOptions
    {
        Redis = new FreeRedis.RedisClient("127.0.0.1:6379,poolsize=5"),
        Servers = new[] { "127.0.0.1:6001" }, //集群配置
        Server = "127.0.0.1:6001"
    });
}

WebApi 業務端

public void Configure(IApplicationBuilder app)
{
    //...

    ImHelper.Initialization(new ImClientOptions
    {
        Redis = new FreeRedis.RedisClient("127.0.0.1:6379,poolsize=5"),
        Servers = new[] { "127.0.0.1:6001" }
    });

    ImHelper.EventBus(
        t => Console.WriteLine(t.clientId + "上線了"), 
        t => Console.WriteLine(t.clientId + "下線了"));
}

Html5 終端

終端連接 websocket 前,應該先請求 WebApi 獲得授權過的地址(ImHelper.PrevConnectServer),偽代碼:

ajax('/prev-connect-imserver', function(data) {
    var url = data; //此時的值:ws://127.0.0.1:6001/ws?token=xxxxx
    var sock = new WebSocket(url);
    sock.onmessage = function (e) {
        //...
    };
})

項目源碼

更多實用功能特性歡迎前往開源地址查看👀,別忘了給項目一個Star💖。

https://github.com/2881099/FreeIM



該文章在 2023/8/25 9:15:31 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产二区三区在线观看视频 | 成人午夜精品无码区久久漫画 | 国产综合久久99久久 | av二区免费在线观看 | 91蜜桃麻豆媒体成人影院 | 精品无码专区亚洲 | 国产动漫一区二区三区在线观看 | 国产精品免费播放久久 | 精品福利一区二区三区免费视 | 国产综合久久精品综合v无码 | 国产麻豆视频 | 国产一区二区三区五区六区 | 高清无码影片在线观看 | av无码久久久久久不卡网站 | 99久久无码一区人妻a片 | 国产萌白酱喷水视频在线播放 | 91成人网站色www | 国产成人黄网在线免 | 成人颜色视频网站免费在线观看 | 国产免费午夜a无码v视 | 国产成人精品美女在线 | 99久久久国产精品免费无卡顿 | 国语对白久久精品一区 | 国产品无码一区二区三区在线 | 国产在线高清不卡免费播放 | 国产成人av综合久久 | 成人一区在线观看 | 国产高清无密码一区二区三区 | 国产精品白丝av网站在线观看 | 国产福利精品一区二区无码 | 国产精品成人一区二区三区电影 | 国产精品国产三级国产普通话对白 | 国产无码中文字幕 | 91成人免费 | 成人午夜视频网站 | 成人精品一区二区三区在线观看 | 91在线国偷自产一区国产永久 | 国产成人精品无码一区二 | 国产重口老太和两个小伙另类 | 国产精品青草久久久久福利 | 国产毛片网站视频在观 |