如何开发一个简单的聊天APP?

我是产品汪

30天以前 4浏览
如何开发一个简单的聊天APP?


写服务端(整体设计思路):

服务端主要实现一下功能:

1、处理客户端登陆请求;

2、处理客户端设置请求(改密码、设置自身昵称、设置留言等);

3、处理客户端发送信息(包括文字、图片、表情)请求;

4、处理客户端发送文件请求(包括发送离线文件请求);

5、处理客户端聊天记录下载请求;

6、处理客户端查询用户列表、加好友等请求;

以上各个功能点围绕“网络通信”和“数据库维护”两个基本点展开:


任务处理逻辑:

使用windows完成端口+线程池技术实现网络通信,可以使用现成的网络库,当新的请求报文到达时,实例化对应的任务类,并投递到一个任务队列中;该任务队列使用信号量内核对象来维护,当有新的任务时,从线程池中激活一个线程去执行该任务。

业务逻辑细则:

1、当客户端接入,但超过n分钟未登陆,服务端主动断掉该客户端,已节约服务端资源;

2、当客户端登陆,在数据库中记录该用户的IP地址以及端口号,并记录登陆状态,表明该用户已经登陆,对于已经登陆的客户端,不允许重复登陆。当客户端注销、主动挂断、被动挂断等事件发生时,清除该用户的登陆状态。

3、当客户端发送消息传送请求时,先判断目的用户是否在线,如果在线,直接将消息转发到目标用户所在客户端IP/端口;否则,存入数据库,当目标用户登录时,择时进行推送。

4、当客户端发送文件请求时,如果双方均在线,则服务器首先协调双方客户端进行直连,如果直连成功,发送方直接给接收方发送文件,服务端不介入数据转发;如果直连不成功,或者接收方不在线,服务器要求客户端首先传送文件验证信息,目的是对要发送的目标文件进行查询,如果服务端已经存在相同的文件(文件名相同、大小相同、MD5校验相同),则通知客户端无需上传,同时在数据库对已存在的文件引用计数+1;如果服务端不存在该文件,则通知客户端发送文件并接收。

5、收到客户端下载聊天记录请求时,服务端从数据库中查询改用户的聊天记录,并分页传送给客户端。

写客户端:

任何报文请求遵循下列步骤:

发送请求报文---等待服务端处理结果---对结果进行处理。


本文仅代表作者观点,版权归属原创作者,如需转载请在文中标注来源及作则名字。

免责声明:本文系转载编辑文章,仅做分享只用,如有疑问请联系邮箱:110@zbj.com

软件app
大家都在看
新上线的电商商城App如何快速吸引商家入驻?

新上线的电商商城App如何快速吸引商家入驻?

软件app
96浏览
手机app图标颜色怎么设置?

手机app图标颜色怎么设置?

软件app
162浏览
直播类视频App软件怎么开发?

直播类视频App软件怎么开发?

软件app
15浏览
直播类视频App软件怎么开发?

直播类视频App软件怎么开发?

软件app
16浏览
移动端app测试流程与方法?

移动端app测试流程与方法?

软件app
5浏览
安卓手机APP里面的图标设计尺寸是多少?

安卓手机APP里面的图标设计尺寸是多少?

软件app
33浏览
网站与APP的区别,各自作用是什么?

网站与APP的区别,各自作用是什么?

软件app
9浏览
自建商城、APP和公众号如何快速引流?

自建商城、APP和公众号如何快速引流?

软件app
10浏览
在抖音APP上的投放广告费用要多少

在抖音APP上的投放广告费用要多少

软件app
44浏览
开发一款手机app软件,要多少钱?

开发一款手机app软件,要多少钱?

软件app
8浏览
服务一个5000万用户的app需要多少成本?

服务一个5000万用户的app需要多少成本?

软件app
6浏览
网站与APP的区别,各自作用是什么?

网站与APP的区别,各自作用是什么?

软件app
115浏览
开发安卓手机app需要的技术有哪些?

开发安卓手机app需要的技术有哪些?

软件app
4浏览
如何运营推广一个城市本土APP

如何运营推广一个城市本土APP

软件app
17浏览
开发一个淘客app要多少钱?

开发一个淘客app要多少钱?

软件app
12浏览
网站,app服务条款包括哪些内容

网站,app服务条款包括哪些内容

软件app
7浏览
一个人可以开发app吗?如何用来赚钱?

一个人可以开发app吗?如何用来赚钱?

软件app
72浏览
开发一个购物app要多久,要多少钱?

开发一个购物app要多久,要多少钱?

软件app
29浏览
如何开发一个简单的聊天APP?

如何开发一个简单的聊天APP?

软件app
4浏览
抖音APP上的推广费用要多少?

抖音APP上的推广费用要多少?

软件app
151浏览
点赞
收藏
分享