提供即时通讯功能
API管理着用户的相关信息, 而且聊天客户端, 在登录的时候, 需要历史消息和未读消息.
API同时有向IM发送消息的需求.
总之, API与IM需要合为一体.
c1, c2 代表在线的两个客户端; c3代表不在线的一个客户端
- c1给c2发消息的流程
- 上线, c1, c2 链接ws, 更新连接和user_id的关系表: { client_id: user_id }, {user_id: client_id_list } 因为用户可以连接多个客户端, 并同时收到消息
- c1向c2发送消息, IM将消息存储到DB里边, 然后找到user_id2 对应的client_id列表, 发送消息给c2
- c2收到消息后, 向API
1. cd docker
2. docker build . -t read-in-life-im:v1
3. docker run -itd -p 8282:8282 -v ./read_in_life_im/:/home/runtime/read_in_life_im/ --name read-in-life-im read-in-life-im:v1 serve
-
1001 服务端发出的ping消息
-
1002 客户端回应的pong消息
-
2001 一个客户端向另一个客户端发送的消息
- from_id
- to_id
- content
-
2002 一个客户端向所有客户端发送的消息
- from_id
- content
-
2003 im给客户端发送的历史消息
- content_list[]
- from_id
- content_list[]
- content_list[]
-
3001 客户端给im发送的已读消息确认
- message_id_list[]
- to_id
-
4001 客户端上线
- user_id
-
4002 客户端下线