/him

一个即时通讯系统,支持单聊,群聊,群发等功能

Primary LanguageGo

HIM

HIM是一个即时消息通信系统,主要实现了单聊、群聊等服务

消息架构

img.png

  • 客户端会和gateway建立WebSocket长连接
  • 客户端的消息会通过sender发送到SendMsgMQ
  • transfer消费SendMsgMQ里的消息,进行序列号生成和持久化存储(为了离线消息),并把消息发送到PushMsgMQ
  • 网关会启动一个消费者消费PushMsgMQ里的消息,如果用户在线,则推送给用户(保证实时性)
  • 客户端也可以通过short服务同步未收到的消息

架构主要参考了OpenIM

主要使用技术

主要使用的技术有Go、Gin、Gorm、MySQL、Redis、Kafka、MongoDB、WebSocket等