项目简介
im_service 是一款即时通讯服务项目,旨在提供高效、稳定的消息传输功能。支持各种类型的消息服务,包括点对点消息、群组消息和聊天室消息。同时,im_service 可进行集群部署,满足大规模用户需求。单台服务器可支持多达50万用户在线,并处理每秒5000条消息。此外,项目还支持超大群组,最高可容纳3000人。
项目特性
- 多种消息类型支持:用户可享受到点对点私聊、多人群组聊天以及聊天室接入等多样化的消息服务。
- 高并发与扩展性:通过集群部署,项目能够承载更大规模的用户需求。单服务器硬件配置要求为32G内存和16核CPU,能够支持50万用户在线,处理消息性能达每秒5000条。
- 超大群组功能:允许创建并支持拥有多达3000人的超级大群组,适合内部交流或大型活动场景。
编译与运行
为了顺利启动im_service,需要遵循以下步骤:
-
安装Go编译环境:确保Go版本支持module功能并高于v1.11。有关安装说明,可以参考Go语言官方文档。
-
下载代码:克隆im_service代码库:
git clone https://github.com/GoBelieveIO/im_service.git
-
编译程序:进入项目目录并创建二进制文件目录,执行安装命令。
cd im_service mkdir bin make install
编译后的可执行程序位于
bin
目录。 -
安装MySQL和Redis:安装好数据库后,需导入
db.sql
文件。 -
配置项目:参考示例配置文件(ims.cfg.sample、imr.cfg.sample、im.cfg.sample)进行程序配置。
-
启动服务:
- 创建消息存放路径:
mkdir /tmp/im mkdir /tmp/impending
- 创建日志文件路径:
mkdir /data/logs/ims mkdir /data/logs/imr mkdir /data/logs/im
- 启动服务进程:
BASEDIR=`pwd` nohup $BASEDIR/ims ims.cfg >/data/logs/ims/ims.err 2>&1 & nohup $BASEDIR/imr imr.cfg >/data/logs/imr/imr.err 2>&1 & nohup $BASEDIR/im im.cfg >/data/logs/im/im.err 2>&1 &
- 创建消息存放路径:
认证与连接
连接im服务器的token信息保存在Redis的hash对象中。可以手动生成token来脱离API服务器进行测试。客户端需要获得$token
作为连接im服务器的认证信息,其包括用户ID和应用ID。
社区交流
官方QQ群:
- 一群:450359487(已满)
- 二群:416969931(加群时请附加说明信息)
相关链接
- 官方网站:GoBelieve开发者平台
- 相关产品:链接至相关产品页面