简要介绍
im是一个即时通讯服务器,代码全部使用golang完成。主要功能
1.支持tcp,websocket接入
2.离线消息同步
3.单用户多设备同时在线
4.单聊,群聊,以及超大群聊天场景
5.支持服务水平扩展
gim和im有什么区别?im可以作为一个im中台提供给业务方使用,而gim可以作为以业务服务器的一个组件,为业务服务器提供im的能力,业务服务器的user服务只需要实现user.int.proto协议中定义的GRPC接口,为im服务提供基本的用户功能即可,其实以我目前的认知,我更推荐这种方式,这种模式相比于im,我认为最大好处在于一下两点:
1.gim不需要考虑多个app的场景,相比im,业务复杂度降低了一个维度
2.各个业务服务可以互不影响,可以做到风险隔离
使用技术:
数据库:MySQL+Redis
通讯框架:GRPC
长连接通讯协议:Protocol Buffers
日志框架:Zap
ORM框架:GORM
安装部署
1.首先安装MySQL,Redis
2.创建数据库gim,执行sql/create_table.sql,完成初始化表的创建(数据库包含提供测试的一些初始数据)
3.修改config下配置文件,使之和你本地配置一致
4.分别切换到cmd的tcp_conn,ws_conn,logic,user目录下,执行go run main.go,启动TCP连接层服