国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

go語言實現的簡單im即時通信系統

馬哥Linux運維 ? 來源:Go開發大全 ? 作者:Go開發大全 ? 2021-10-20 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹了一個 go 語言實現的簡單 im 即時通信系統。

簡介

純go實現的im即時通訊系統,各層可單獨部署,之間通過rpc通訊,支持集群,github地址 https://github.com/Terry-Ye/im_api , 學習于goim, 總分三層,

comet(用戶連接層),可以直接部署多個節點,每個節點保證serverId 唯一,在配置文件comet.toml

logic(業務邏輯層),無狀態,各層通過rpc通訊,容易擴展,支持http接口來接收消息

job(任務推送層)通過redsi 訂閱發布功能進行推送到comet層。

系統架構圖

時序圖

以下Comet 層,Logic 層,Job層都可以靈活擴展機器

特性

分布式,可拓撲的架構

支持單個,房間推送

心跳支持(gorilla/websocket內置)

基于redis 做消息推送

輕量級

持續迭代。。.

部署

  1. 安裝
    
goget-ugithub.com/Terry-Ye/im
mv$GOPATH/src/github.com/Terry-Ye/im$GOPATH/src/im
cd$GOPATH/src/im
goget./...

golang.org 包拉不下來的情況,例

packagegolang.org/x/net/ipv4:unrecognizedimportpath"golang.org/x/net/ipv4"(httpsfetch:Gethttps://golang.org/x/net/ipv4?go-get=1:dialtcp216.239.37.1i/otimeout)

從github 拉下來,再移動位置

gitclonehttps://github.com/golang/net.git
mkdir-pgolang.org/x/

mvnet$GOPATH/src/golang.org/x/
  1. 部署im

安裝comet、logic、job模塊

cd$GOPATH/src/im/comet
goinstall
cd../logic/
goinstall
cd../job
goinstall

nohup$GOPATH/bin/logic-d$GOPATH/src/im/logic/2>&1>/data/log/im/logic.log&

nohup$GOPATH/bin/comet-d$GOPATH/src/im/comet/2>&1>/data/log/im/comet.log&

nohup$GOPATH/bin/job-d$GOPATH/src/im/job/2>&1>/data/log/im/job.log&
  1. im_api 是im系統中使用的接口,需要像demo那樣整體跑起來需要完整的部署

部署注意事項

  1. 部署服務器注意防火墻是否開放對應的端口(本地不需要,具體需要的端口在各層的配置文件)

demo

聊天室:http://www.texixi.com:1999/

使用的包

  • log: github.com/sirupsen/logrus
  • rpc: github.com/smallnest/rpcx
  • websocket: github.com/gorilla/websocket
  • 配置文件:github.com/spf13/viper

后續計劃

  1. 在線列表
  2. 支持wss
  3. 聊天機器人

原文來自:www.ancii.com/awugjp68e/

編輯:jq
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信系統
    +關注

    關注

    6

    文章

    1263

    瀏覽量

    55144
  • 聊天機器人
    +關注

    關注

    0

    文章

    348

    瀏覽量

    13089
  • go語言
    +關注

    關注

    1

    文章

    159

    瀏覽量

    9778

原文標題:支持分布式的 go 實現即時通訊系統

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    無線生活,“藍牙”相連——探索藍牙技術的智能連接世界

    無線個域網的主流技術之一。二、五大核心特點1. 短距高效,即連即用藍牙設備可自動搜索并快速建立連接,無需復雜配置,實現設備間的即時通信與數據交換。2. 低功耗設計,持久續航藍牙低功耗模式適用于穿戴設備
    發表于 02-11 09:27

    連接數字的即時紐帶

    在數字時代,信息傳遞的速度決定著我們與世界互動的效率。實時通信(Real-TimeCommunication,RTC)技術正是這一需求的產物,它讓數據跨越物理距離,實現近乎瞬時的交換。與傳統
    的頭像 發表于 01-30 08:40 ?160次閱讀
    連接數字的<b class='flag-5'>即時</b>紐帶

    講解C語言代碼的實現過程

    重點講解C語言代碼的實現過程,算法的C語言實現過程具有一般性,通過PID算法的C語言實現,可以以此類推,設計其它算法的C語言實現。 第一步:
    發表于 01-21 07:58

    C語言實現PID算法介紹

    是對目標值和實際值誤差進行比例、積分、微分運算后的結果用來作用在輸出上。 比例 (P) 比例控制是最簡單的一種控制方式,成比例的反應控制系統中輸入與輸出的偏差信號,只要偏差一旦產生,就立即產生控制的作用
    發表于 01-16 07:24

    無線生活,“藍牙”相連——探索藍牙技術的智能連接世界

    無線個域網的主流技術之一。二、五大核心特點1. 短距高效,即連即用藍牙設備可自動搜索并快速建立連接,無需復雜配置,實現設備間的即時通信與數據交換。2. 低功耗設計,持久續航藍牙低功耗模式適用于穿戴設備
    發表于 01-14 09:23

    socket是什么

    特定的IP地址和端口上等待客戶端連接,客戶端則通過Socket連接到服務器程序并進行通信。通過Socket技術,可以實現不同操作系統和編程語言之間的
    發表于 12-03 08:27

    常用Web 實時通信技術:原理+選型,一篇通關

    用的實時通信技術,從概念、原理特點、適用場景、對比選型進行詳細解析。 一、WebSocket 1.1、核心概念 WebSocket 是 Web 端實時通信的 “基礎設施”,通過 全雙工長連接 和 輕量幀傳輸 ,解決了 HTTP 單向短連接的局限性,成為
    的頭像 發表于 10-27 17:19 ?829次閱讀
    常用Web 實時<b class='flag-5'>通信</b>技術:原理+選型,一篇通關

    即時通話軟件音頻傳輸質量測試方案介紹

    本套測試方案的核心目的是通過POLQA(Perceptual Objective Listening Quality Assessment)主觀音質評價測試來反映即時通話軟件在使用過程中的音頻
    的頭像 發表于 08-10 15:21 ?3633次閱讀
    <b class='flag-5'>即時通</b>話軟件音頻傳輸質量測試方案介紹

    海底光纜系統怎么組成

    在數字浪潮席卷全球的當下,短視頻的沉浸式體驗、跨國即時通訊的暢所欲言以及全天候全球資訊的實時推送,早已成為我們生活的日常。
    的頭像 發表于 07-21 14:45 ?1081次閱讀

    智己IM5和IM6登陸英國市場

    近日,智己汽車全球化戰略迎來里程碑時刻。旗下明星車型——智己L6海外版IM5與智己LS6海外版IM6,盛大亮相全球頂級汽車盛會古德伍德速度節(Goodwood Festival of Speed
    的頭像 發表于 07-15 13:50 ?784次閱讀

    基于瑞芯微RK3562 的四核 AR M Cortex-A53 + 單核 ARM Cortex-M0工業評估板——MQTT通信方案

    MQTT作為一種低開銷,低帶寬占用的即時通訊協議,可以極少的代碼和帶寬為聯網設備提供實時可靠的消息服務,適用于硬件資源有限的設備及帶寬有限的網絡環境。我司提供的評估板文件系統已支持Mosquitto工具,本文mqtt_client案例采用Mosquitto工具演示MQTT
    的頭像 發表于 06-05 15:00 ?1907次閱讀
    基于瑞芯微RK3562 的四核 AR M Cortex-A53 + 單核 ARM Cortex-M0工業評估板——MQTT<b class='flag-5'>通信</b>方案

    鴻蒙5開發寶藏案例分享---一多開發實例(即時通訊)

    們準備好了超多實用開發案例!尤其是那個讓無數人頭疼的\"一次開發多端部署\",官方竟然悄悄塞了這么多實戰技巧!(拍大腿) ?先上硬核案例:即時通訊應用的多端魔法? 官方這個即時通
    發表于 06-03 16:01

    單片機C語言實例(350+例)

    350+單片機C語言實例! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 05-22 21:47

    從 Java 到 Go:面向對象的巨人與云原生的輕騎兵

    Go 語言在 2009 年被 Google 推出,在創建之初便明確提出了“少即是多(Less is more)”的設計原則,強調“以工程效率為核心,用極簡規則解決復雜問題”。它與 Java 語言生態
    的頭像 發表于 04-25 11:13 ?644次閱讀

    基于Verilog語言實現CRC校驗

    CRC即循環冗余校驗碼:是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環冗余檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。
    的頭像 發表于 03-24 10:36 ?2531次閱讀
    基于Verilog<b class='flag-5'>語言實現</b>CRC校驗