GOIM——把GOIM源码跑起来——过程记录
一、初次安装过程
1、环境准备
go开发环境 https://go.dev/dl/
java8开发环境
本文所用环境 MacBook-Pro
2、Terry-Mao/goim
是一个支持集群的im及实时推送服务。
GOIM源码地址 https://github.com/Terry-Mao/goim
进入goim目录,编译、启动
cd goim/
make build
make run
少了依赖kafka、discovery启不来;
3、下载、安装 kafka
https://www.apache.org/dyn/closer.cgi?path=/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar -zxvf kafka_2.13-3.2.0.tgz cd kafka_2.13-3.2.0 启动ZooKeeper bin/zookeeper-server-start.sh config/zookeeper.properties 启动kafka bin/kafka-server-start.sh config/server.properties
创建测试topic bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test 相看topic列表 bin/kafka-topics.sh --list --bootstrap-server localhost:9092
4、下载、安装 discovery
https://github.com/bilibili/discovery
mac下编不过, 报错, warning: 'TARGET_OS_MAC' is not defined, evaluates to 0 [-Wundef-prefix=TARGET_OS_]
改用win10下编 discovery
cd cmd/discovery
go build
./discovery.exe -conf discovery.toml
把discovery.toml中的ip由127.0.0.1改为所在机器的ip
5、再次启动 gomi, comet logic job依次被discovery发现,表示启动成功;
6、测试
启动网页端 go run examples/javascript/main.go
进入 http://127.0.0.1:1999/examples/javascript/ , 如图,表示成功
在控制台发送测试消息,观察网页端消息显示
curl -d 'mid message' 'http://127.0.0.1:3111/goim/push/mids?operation=1000&mids=123' curl -d 'room message' 'http://127.0.0.1:3111/goim/push/room?operation=1000&type=live&room=1000' curl -d 'broadcast message' 'http://127.0.0.1:3111/goim/push/all?operation=1000'
二、原理学习理解
1、架构图