純go實現的im即時通訊系統,各層可單獨部署,之間通過rpc通訊,支援集群,github位址 學習於goim, 總分三層,
comet(使用者連線層),可以直接部署多個節點,每個節點保證serverid 唯一,在配置檔案comet.toml
logic(業務邏輯層),無狀態,各層通過rpc通訊,容易擴充套件,支援http介面來接收訊息
job(任務推送層)通過redsi 訂閱發布功能進行推送到comet層。
以下comet 層,logic 層,job層都可以靈活擴充套件機器
分布式,可拓撲的架構
支援單個,房間推送
心跳支援(gorilla/websocket內建)
基於redis 做訊息推送
輕量級持續迭代…
安裝
go get -u github.com/terry-ye/im
golang.org 包拉不下來的情況,例
package golang.org/x/net/ipv4: unrecognized import path "golang.org/x/net/ipv4" (https fetch: get dial tcp 216.239.37.1:443: i/o timeout)
從github 拉下來,再移動位置
git clone
mkdir -p golang.org/x/
mv net $gopath/src/golang.org/x/
部署im
安裝comet、logic、job模組
cd $gopath/src/im/comet
go install
cd ../logic/
go install
cd ../job
go install
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 &
im_api 是im系統中使用的介面,需要像demo那樣整體跑起來需要完整的部署
部署伺服器注意防火牆是否開放對應的埠(本地不需要,具體需要的埠在各層的配置檔案)
聊天室:
支援wss
聊天機械人
即時通訊系統
企業擁有一套理想的即時通訊系統,正如找到了一位得心應手的商務秘書。然而,縱觀當前企業即時通訊市場,同質化的即時通訊軟體比比皆是,而能夠讓企業真正根據自身需要來按需定製 人性化開發的即時通訊系統卻少之又少。傳統開發理念讓企業被動使用即時通訊。目前,大多數的軟體提供商還在用傳統的開發理念來開發企業即時通...
即時通訊系統IM
背景 即時通訊 instant messaging 是目前internet上最為流行的通訊方式,各種各樣的即時通訊軟體也層出不窮 服務提供商也提供了越來越豐富的通訊服務功能。不容置疑,internet已經成為真正的資訊高速公路。從實際工程應用角度出發,以計算機網路原理為指導,結合當前網路中的一些常用...
即時通訊系統架構
先看狀態訊息系統 connd client接入伺服器,可以支援udp,也可以支援tcp,一般建議優先選擇tcp。connd可以布置多台,client接入時,可以用簡單的dns輪詢的方式實現負載均衡。connd功能是維護連線和 訊息包。pconnd proxy connd,接入伺服器,是connd的擴...