ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

how to design a chat system

2021-09-26 03:00:59  阅读:127  来源: 互联网

标签:service app system 用户 发送 how design msg server


Senario:

      1) one to one send message

      2) sent/deleveried/read

      3) user online status , online/last seen 5min

      4) send image, video,file

      5) group chat

      DAU:  10 million active users/Day

 

Service:

      1) one to one send message

      2) sent/deleveried/read

     

   1.A/B/C/D 以websocket方式与对应gateway相连,保持长连接,并且会在db中生成注册数据 ,即userid-proxy 对应关系

      当A用户 发送一条消息给B用户 的时候,

       1> A -> proxy1 -> msg service, service接收到A发给B的消息,会立刻给A一个反馈,  此时A的app会显示sent

       2>msg service 从db中寻找B对应的gateway,并且发送给B,   当B 接收到 A 发送的消息时,会给sessionservide发送状态 deleveried, 最终 A的app收到状态,显示该消息为delivered

       3>当B用户阅读A 用户发送的消息后,B的app 会发送状态给msg service , 最终A的app收到状态,显示该消息为read

   2.假如B用户开始没有与gateway相连

       

      当A用户发送一条消息给B用户,

       1> A -> proxy1 -> msg service, service接收到A发给B的消息,会立刻给A一个反馈,  此时A的app会显示sent

       2> msg service 从db中寻找B对应的gateway,发现B用户不在线,msg service 会将给消息暂存到数据库

       3> 当B用户上线以后,service会将未发送的消息推送到B的app

      3) user online status , online/last seen 5min

       1> B app 与server连接的状态下, 当B app用户有相关操作向server端发起请求时, session service会更新update_table

       2>那么 A 用户app 可以实时从server端get到 B用户的状态

      

      4) send image, video,file

   当用户A发送一张图片给用户B时

    1> A app 会先connect 到http server, 将图片发送到httpserver

    2> http server会返回一个link 给A app

    3> A app将这个link 发送给B 

    4> B app 接受到这个link

    5> B app 请求http server,根据A的link 对图片完成下载

   

 

 

 

      5) group chat

     未完待续

标签:service,app,system,用户,发送,how,design,msg,server
来源: https://www.cnblogs.com/cynrjy/p/15336100.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有