在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    1220

    瀏覽量

    53821
  • 聊天機器人
    +關注

    關注

    0

    文章

    346

    瀏覽量

    12631
  • go語言
    +關注

    關注

    1

    文章

    158

    瀏覽量

    9230

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    基于Verilog語言實現CRC校驗

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

    限時免積分下載:增量式與位置式PID算法的C語言實現分享

    前面咱們有分享對PID算法離散化和增量式PID算法原理進行來探索,之后又使用Matlab進行了仿真實驗,對PID三個參數又有了更深入的認識,接下來我們來使用C語言進行PID算法實現,并且結合控制電機的項目來深入學習。 今天限時免積分下載哦~~~~
    發表于 03-05 18:32

    PID控制算法的C語言實現:PID算法原理

    在工業應用中 PID 及其衍生算法是應用最廣泛的算法之一,是當之無愧的萬能算法,如果能夠熟練掌握 PID 算法的設計與實現過程,對于一般的研發人員來講,應該是足夠應對一般研發問題了,而難能可貴
    發表于 02-26 15:24

    華為云 Flexus X 實例云服務器部署即時通IM 項目

    @TOC ? 寫在前面 手里拿到了一臺 華為云 Flexus X 實例 的云服務器,部署部署項目試試看看性能怎么樣。正當華為云 828 上云活動,可領 8280 元的券,活動地址在這里:點我查看 ? 讓我們來看看干點什么呢?部署個實用的應用吧~ Flexus X 實例云服務器 介紹 首先,flexus 系列的產品不止有云服務器,還有如下一些產品: 1.?Flexus L 實例的云服務器 2.?Flexus X 實例的云服務器 3.?Flexus 云數據庫 RDS 4.?Flexus 云容器實例 5.?Flexus 數字人 6.?Flexus 企業搜索服務 7.?Fle
    的頭像 發表于 02-07 10:15 ?271次閱讀
    華為云 Flexus X 實例云服務器部署<b class='flag-5'>即時通</b>訊 <b class='flag-5'>IM</b> 項目

    基于FPGA實現圖像直方圖設計

    簡單,單采用FPGA來實現直方圖的統計就稍顯麻煩。若使用Xilinx和Altera的FPGA芯片,可以使用HLS來進行圖像的加速處理。但這暫時不是我的重點。 用C語言實現直方圖統計:unsigned
    的頭像 發表于 12-24 10:24 ?548次閱讀
    基于FPGA<b class='flag-5'>實現</b>圖像直方圖設計

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

    使用過程中的音頻傳輸質量。即時通話軟件基于移動網絡鏈路傳輸信號,通過本套測試方案中配套的網絡損傷仿真設備對傳輸鏈路添加不同的網絡影響,模擬軟件在不同網絡環境下的使用情況,進而測得更接近真實應用場景下的音頻傳輸質量。 POLQA測試算法是基于心理聲學模型,模擬人類聽覺系統
    的頭像 發表于 12-03 14:34 ?497次閱讀
    <b class='flag-5'>即時通</b>話軟件音頻傳輸質量測試方案

    在學習go語言的過程踩過的坑

    作為一個5年的phper,這兩年公司和個人都在順應技術趨勢,新項目慢慢從php轉向了go語言,從2021年到現在,筆者手上也先后開發了兩個go項目。在學習go
    的頭像 發表于 11-11 09:22 ?342次閱讀

    使用C語言實現函數模板

      用C語言能不能實現一個通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?727次閱讀

    go語言如何解決并發問題

    作為一個后端開發,日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區分,開發速度真的是比
    的頭像 發表于 10-23 13:38 ?340次閱讀
    <b class='flag-5'>go</b><b class='flag-5'>語言</b>如何解決并發問題

    三十分鐘入門基礎Go Java小子版

    前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態、強類型、編譯型語言
    的頭像 發表于 08-12 14:32 ?888次閱讀
    三十分鐘入門基礎<b class='flag-5'>Go</b> Java小子版

    如何用C語言實現高效查找(二分法)

    今天給分享一下使用C語言實現二分算法,主要包含以下幾部分內容:二分查找算法介紹二分查找算法使用場景二分查找算法代碼實現二分查找算法實現過程用C語言實現二分法查找二分查找也稱折半查找
    的頭像 發表于 06-04 08:04 ?1540次閱讀
    如何用C<b class='flag-5'>語言實現</b>高效查找(二分法)

    使用C語言實現的CRC計算單元的例子

    使用C語言實現的CRC計算單元的例子
    的頭像 發表于 05-16 16:16 ?1349次閱讀

    HarmonyOS開發案例:【Web組件實戰】

    使用ArkTS語言實現一個簡單的免登錄過程,向大家介紹基本的cookie管理操作。
    的頭像 發表于 04-28 17:30 ?1544次閱讀
    HarmonyOS開發案例:【Web組件實戰】

    關于go中接口類型的表示方法

    go是一個靜態性語言,每個變量都有靜態的類型,因此每個變量在編譯階段中有明確的變量類型,比如像:int、float32、MyType。
    的頭像 發表于 04-28 10:13 ?490次閱讀
    主站蜘蛛池模板: 四虎影片国产精品8848 | 爱爱小视频免费看 | 正在播放91 | www.亚洲黄色| 亚洲一区二区三区在线网站 | 亚洲欧美圣爱天天综合 | 国产午夜精品福利久久 | 中文久草 | 亚洲欧美在线精品一区二区 | 色天使在线播放 | av福利网址网站 | 欧美精品区 | 六月婷婷啪啪 | 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 免费看国产精品久久久久 | 视频 在线 | avtt加勒比手机版天堂网 | 91在线激情在线观看 | 狠狠色噜噜狠狠狠狠米奇777 | 女同毛片免费网站 | 一区二区三区在线观看免费 | 美女扒开尿口给男人桶动态图 | 59日本人xxxxxxxxx69 | 免费在线色视频 | 久久久久久综合 | 亚洲一区视频 | 狠狠色综合网 | 国产精品伦子一区二区三区 | 男男浪荡双性受hplay | 80s国产成年女人毛片 | 久草色香蕉| 特级毛片免费视频 | 成人mv高清在线 | 特一级黄色片 | 欧美adc影院 | 一本大道一卡二卡四卡 | 99久久国产免费 - 99久久国产免费 | 亚洲国产激情在线一区 | 综合网天天操天天射 | 婷婷六月丁香午夜爱爱 | 国产真实乱xxxav |