91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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愛好者 ? 來源:大嗚 ? 作者:大嗚 ? 2021-10-26 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【導(dǎo)讀】本文介紹了一個(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層。

時(shí)序圖

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

特性

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

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

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

基于redis 做消息推送

輕量級

持續(xù)迭代。。.

部署

安裝

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ī)器人

編輯: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

    文章

    1263

    瀏覽量

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

    關(guān)注

    0

    文章

    348

    瀏覽量

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

    關(guān)注

    1

    文章

    159

    瀏覽量

    9776

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

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    無線生活,“藍(lán)牙”相連——探索藍(lán)牙技術(shù)的智能連接世界

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

    講解C語言代碼的實(shí)現(xiàn)過程

    重點(diǎn)講解C語言代碼的實(shí)現(xiàn)過程,算法的C語言實(shí)現(xiàn)過程具有一般性,通過PID算法的C語言實(shí)現(xiàn),可以以此類推,設(shè)計(jì)其它算法的C語言實(shí)現(xiàn)。 第一步:
    發(fā)表于 01-21 07:58

    C語言實(shí)現(xiàn)PID算法介紹

    是對目標(biāo)值和實(shí)際值誤差進(jìn)行比例、積分、微分運(yùn)算后的結(jié)果用來作用在輸出上。 比例 (P) 比例控制是最簡單的一種控制方式,成比例的反應(yīng)控制系統(tǒng)中輸入與輸出的偏差信號,只要偏差一旦產(chǎn)生,就立即產(chǎn)生控制的作用
    發(fā)表于 01-16 07:24

    無線生活,“藍(lán)牙”相連——探索藍(lán)牙技術(shù)的智能連接世界

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

    KIT_XMC14_2GO開發(fā)板:功能特性與硬件解析

    KIT_XMC14_2GO開發(fā)板:功能特性與硬件解析 在電子開發(fā)領(lǐng)域,一款性能出色且功能豐富的開發(fā)板對于工程師來說至關(guān)重要。今天,我們就來詳細(xì)探討一下KIT_XMC14_2GO開發(fā)板,它配備了英飛凌
    的頭像 發(fā)表于 12-19 10:20 ?440次閱讀

    socket是什么

    特定的IP地址和端口上等待客戶端連接,客戶端則通過Socket連接到服務(wù)器程序并進(jìn)行通信。通過Socket技術(shù),可以實(shí)現(xiàn)不同操作系統(tǒng)和編程語言之間的
    發(fā)表于 12-03 08:27

    米爾 SECC 方案:國標(biāo)充電樁多協(xié)議兼容的通信基礎(chǔ)解析

    槍狀態(tài)、通信階段- ADC 狀態(tài)采集:檢測電氣狀態(tài)是否達(dá)標(biāo)- 多接口通信模塊:實(shí)現(xiàn)車輛、樁控系統(tǒng)與后臺之間的聯(lián)動- 基礎(chǔ)安全保護(hù):確保通信
    發(fā)表于 11-20 17:46

    常用Web 實(shí)時(shí)通信技術(shù):原理+選型,一篇通關(guān)

    用的實(shí)時(shí)通信技術(shù),從概念、原理特點(diǎn)、適用場景、對比選型進(jìn)行詳細(xì)解析。 一、WebSocket 1.1、核心概念 WebSocket 是 Web 端實(shí)時(shí)通信的 “基礎(chǔ)設(shè)施”,通過 全雙工長連接 和 輕量幀傳輸 ,解決了 HTTP
    的頭像 發(fā)表于 10-27 17:19 ?822次閱讀
    常用Web 實(shí)時(shí)<b class='flag-5'>通信</b>技術(shù):原理+選型,一篇通關(guān)

    協(xié)議解析網(wǎng)關(guān)是什么?有什么功能?

    、OPCUA、HTTP等),并將其轉(zhuǎn)換為目標(biāo)系統(tǒng)或設(shè)備可識別的協(xié)議格式,從而實(shí)現(xiàn)跨協(xié)議的通信與數(shù)據(jù)交互。 簡單來說,協(xié)議解析網(wǎng)關(guān)就像“翻譯官
    的頭像 發(fā)表于 08-13 14:04 ?871次閱讀
    協(xié)議<b class='flag-5'>解析</b>網(wǎng)關(guān)是什么?有什么功能?

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

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

    通用衛(wèi)星通信模擬仿真系統(tǒng)全面解析

    通用衛(wèi)星通信模擬仿真系統(tǒng)全面解析
    的頭像 發(fā)表于 07-28 09:26 ?717次閱讀
    通用衛(wèi)星<b class='flag-5'>通信</b>模擬仿真<b class='flag-5'>系統(tǒng)</b>全面<b class='flag-5'>解析</b>

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

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

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

    們準(zhǔn)備好了超多實(shí)用開發(fā)案例!尤其是那個(gè)讓無數(shù)人頭疼的\"一次開發(fā)多端部署\",官方竟然悄悄塞了這么多實(shí)戰(zhàn)技巧?。ㄅ拇笸龋??先上硬核案例:即時(shí)通訊應(yīng)用的多端魔法? 官方這個(gè)即時(shí)通
    發(fā)表于 06-03 16:01

    單片機(jī)C語言實(shí)例(350+例)

    350+單片機(jī)C語言實(shí)例! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-22 21:47

    基于Verilog語言實(shí)現(xiàn)CRC校驗(yàn)

    CRC即循環(huán)冗余校驗(yàn)碼:是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
    的頭像 發(fā)表于 03-24 10:36 ?2518次閱讀
    基于Verilog<b class='flag-5'>語言實(shí)現(xiàn)</b>CRC校驗(yàn)