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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

go語言實(shí)現(xiàn)的簡單im即時(shí)通信系統(tǒng)

馬哥Linux運(yùn)維 ? 來源:Go開發(fā)大全 ? 作者:Go開發(fā)大全 ? 2021-10-20 16:02 ? 次閱讀

本文介紹了一個(gè) go 語言實(shí)現(xiàn)的簡單 im 即時(shí)通信系統(tǒng)。

簡介

純go實(shí)現(xiàn)的im即時(shí)通訊系統(tǒng),各層可單獨(dú)部署,之間通過rpc通訊,支持集群,github地址 https://github.com/Terry-Ye/im_api , 學(xué)習(xí)于goim, 總分三層,

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

logic(業(yè)務(wù)邏輯層),無狀態(tài),各層通過rpc通訊,容易擴(kuò)展,支持http接口來接收消息

job(任務(wù)推送層)通過redsi 訂閱發(fā)布功能進(jìn)行推送到comet層。

系統(tǒng)架構(gòu)圖

時(shí)序圖

以下Comet 層,Logic 層,Job層都可以靈活擴(kuò)展機(jī)器

特性

分布式,可拓?fù)涞募軜?gòu)

支持單個(gè),房間推送

心跳支持(gorilla/websocket內(nèi)置)

基于redis 做消息推送

輕量級

持續(xù)迭代。。.

部署

  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系統(tǒng)中使用的接口,需要像demo那樣整體跑起來需要完整的部署

部署注意事項(xiàng)

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

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

后續(xù)計(jì)劃

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

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

編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 通信系統(tǒng)
    +關(guān)注

    關(guān)注

    6

    文章

    1205

    瀏覽量

    53491
  • 聊天機(jī)器人
    +關(guān)注

    關(guān)注

    0

    文章

    344

    瀏覽量

    12378
  • go語言
    +關(guān)注

    關(guān)注

    1

    文章

    158

    瀏覽量

    9094

原文標(biāo)題:支持分布式的 go 實(shí)現(xiàn)即時(shí)通訊系統(tǒng)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    華為云 Flexus X 實(shí)例云服務(wù)器部署即時(shí)通IM 項(xiàng)目

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

    基于FPGA實(shí)現(xiàn)圖像直方圖設(shè)計(jì)

    簡單,單采用FPGA來實(shí)現(xiàn)直方圖的統(tǒng)計(jì)就稍顯麻煩。若使用Xilinx和Altera的FPGA芯片,可以使用HLS來進(jìn)行圖像的加速處理。但這暫時(shí)不是我的重點(diǎn)。 用C語言實(shí)現(xiàn)直方圖統(tǒng)計(jì):unsigned
    的頭像 發(fā)表于 12-24 10:24 ?244次閱讀
    基于FPGA<b class='flag-5'>實(shí)現(xiàn)</b>圖像直方圖設(shè)計(jì)

    即時(shí)通話軟件音頻傳輸質(zhì)量測試方案

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

    在學(xué)習(xí)go語言的過程踩過的坑

    作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢,新項(xiàng)目慢慢從php轉(zhuǎn)向了go語言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go
    的頭像 發(fā)表于 11-11 09:22 ?206次閱讀

    使用C語言實(shí)現(xiàn)函數(shù)模板

      用C語言能不能實(shí)現(xiàn)一個(gè)通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點(diǎn)數(shù)的相加?
    的頭像 發(fā)表于 11-09 11:38 ?495次閱讀

    go語言如何解決并發(fā)問題

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

    三十分鐘入門基礎(chǔ)Go Java小子版

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

    如何用C語言實(shí)現(xiàn)高效查找(二分法)

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

    使用C語言實(shí)現(xiàn)的CRC計(jì)算單元的例子

    使用C語言實(shí)現(xiàn)的CRC計(jì)算單元的例子
    的頭像 發(fā)表于 05-16 16:16 ?1093次閱讀

    HarmonyOS開發(fā)案例:【W(wǎng)eb組件實(shí)戰(zhàn)】

    使用ArkTS語言實(shí)現(xiàn)一個(gè)簡單的免登錄過程,向大家介紹基本的cookie管理操作。
    的頭像 發(fā)表于 04-28 17:30 ?1373次閱讀
    HarmonyOS開發(fā)案例:【W(wǎng)eb組件實(shí)戰(zhàn)】

    關(guān)于go中接口類型的表示方法

    go是一個(gè)靜態(tài)性語言,每個(gè)變量都有靜態(tài)的類型,因此每個(gè)變量在編譯階段中有明確的變量類型,比如像:int、float32、MyType。
    的頭像 發(fā)表于 04-28 10:13 ?416次閱讀

    Go語言中的函數(shù)、方法與接口詳解

    Go 沒有類,不過可以為結(jié)構(gòu)體類型定義方法。方法就是一類帶特殊的接收者參數(shù)的函數(shù)。方法接收者在它自己的參數(shù)列表內(nèi),位于 func 關(guān)鍵字和方法名之間。(非結(jié)構(gòu)體類型也可以定義方法)
    的頭像 發(fā)表于 04-23 16:21 ?921次閱讀

    C語言實(shí)現(xiàn)Web參數(shù)傳遞

    電子發(fā)燒友網(wǎng)站提供《C語言實(shí)現(xiàn)Web參數(shù)傳遞.docx》資料免費(fèi)下載
    發(fā)表于 03-24 09:14 ?2次下載

    學(xué)習(xí)筆記|如何用Go程序采集溫濕度傳感器數(shù)據(jù)

    在共創(chuàng)社內(nèi)部的交流中,先前有一位成員展示了如何借助C語言實(shí)現(xiàn)對AHT20溫濕度傳感器數(shù)據(jù)的讀取。這一實(shí)例觸發(fā)了另一位共創(chuàng)官的靈感,他決定采納Go語言重新構(gòu)建這一數(shù)據(jù)采集流程。接下來,
    的頭像 發(fā)表于 03-21 11:46 ?822次閱讀
    學(xué)習(xí)筆記|如何用<b class='flag-5'>Go</b>程序采集溫濕度傳感器數(shù)據(jù)

    GitHub Copilot+ESP開發(fā)實(shí)戰(zhàn)-串口

    上篇文章講了GitHubCopilot在應(yīng)用中可能遇到的問題,接下來小啟就簡單介紹下GitHubCopilot在ESP32開發(fā)中C語言實(shí)現(xiàn)串口功能,感興趣的可以看看。一、向Copilot提問
    的頭像 發(fā)表于 03-16 08:03 ?557次閱讀
    GitHub Copilot+ESP開發(fā)實(shí)戰(zhàn)-串口
    主站蜘蛛池模板: 永久视频免费 | 久久男人视频 | 亚洲免费国产 | 欧美性区 | 天天插天天狠天天透 | 婷婷五月五 | 色的视频网站 | 亚洲视频一二三 | 天天天天操 | 午夜三级国产精品理论三级 | 91男女视频 | 婷婷精品视频 | 中文字幕有码在线视频 | 男女视频在线 | ww欧洲ww在线视频看ww | 午夜 福利 | 91国内视频 | 国产婷婷高清在线观看免费 | 欧美日韩啪啪 | 天天天操天天天干 | 天堂视频网 | 自偷自拍亚洲欧美清纯唯美 | 三级黄色在线视频中文 | 婷婷国产 | 在线精品91青草国产在线观看 | 性中国videosex国产孕妇 | lsj老司机精品视频在线观看 | 亚洲 欧美 丝袜 制服 在线 | 国产色婷婷精品综合在线手机播放 | 在线午夜视频 | 绝色村妇的泛滥春情 | 天天插一插 | 久久综合爱 | 超级淫小黄文大全很污的那种 | 大尺度视频网站久久久久久久久 | 一区二区三区精品视频 | 欧美性色黄大片四虎影视 | 寄宿日记免费看 | 国产欧美网站 | 好大好硬好深好爽的视频 | 国产精品久久久久久免费播放 |