[Android分享] 社交软件开发解决方案

一个简单的社交软件解决方案应该解决的问题:

通信/共享/空间(朋友圈)/用户/好友/动态/聊天记录.

社交主要是交流、朋友圈(空间)。通信又分为文本、表情、语音、视频。朋友圈主要包含自己和好友动态,有些还包含系统推荐的信息。

这是我使用Bmob提供的解决方案案例:

通信:建立Bmob推送服务基础上,有消息需要将通知或者信息推送到参与者端,文本可以直接推送,对于视频,语音推送的是存储连接地址,当参与者收到推送消息,根据地址下载该消息。对于表情来说有两种方法,一种是在本地存储表情包,另一种是和视频,语音一样,由对应的消息类型来标识。其中这里视频,语音,如果表情使用和视频以及语音一样的方式,使用bmob文件服务存储。聊天记录使用bmob表结构存储。

用户管理:用户是整个社交过程的对象,好友、交流、动态、朋友圈、记录查询、评论动态等等都是在用户的基础上建立的。使用Bmob提供的服务能很好的解决用户之间的联系。间图:

用户表:每一个应用仅有一个用户表,由Bmob服务自动生成,用于管理使用该应用的用户:

用户好友表:使用该应用某个用户的好友信息表,每一个用户表中的一项应该对应一个好友表,开发者根据当用户表中插入一条新记录时就创建,用于管理该用户的所有好友,如根据上面的用户表,将需要创建WindWorld_friends和Rainworld_friends表.

如图是Rainworld好友表;

用户动态表:该用户的所有动态存储表,同样是每一个用户表中的一项应该对应一个动态表,用于管理该用户发表的动态(朋友圈动态);根据上面的用户表中的内容,应该创建Rainworld_dynamic和WindWorld_dynamic表.

如图是Rainworld的动态表;

聊天记录表:该用户参与会话的纪录表,当创建一个新的会话时,就创建一个会话表,里面存储了会话内容,建议使用会话双方的ID创建会话表;

如图是Rainworld和WindWorld的聊天记录表:

定时任务存储表:存储了定时任务执行的结果(注:定时任务主要是获取和更新好友动态,当获取好友动态的时候只需要读取这个定时任务表即可);

注:除了用户表,其他数据表Bmob不进行创建,必须由开发者根据需要创建。如:当用户注册时,应该根据注册的信息创建对应的用户好友表以及动态信息表;当有会话时则创建与该会话相关的会话表,用于存储会记录;当需要上传多媒体信息时,需要创建对应文件信息存储表(主要存储多媒体文件的路径),创建这些表均可用使用Bmob服务对象直接创建,这对应的是对象存储,可以查看:http://docs.bmob.cn/android/developdoc/index.html?menukey=develop_doc&key=develop_android#index_添加数据。

聊天记录使用表结构云存储。由统一的结构来标识信息是否是多媒体类型,如果是就采用不同的方式呈现。通过自定义的数据结构来进行本地分发(当客户接受到消息以后,解析消息结构,根据自定义消息的类型来决定下面要做的事情,是直接显示文本消息,或是显示图像,或者是显示视频,或者是显示音频信息)。通信过程:

上面是具体的社交软件通信方式,其中简单的叙述了使用bmob服务实现简单的社交解决方案。其中的A、B代表的是通信的两个客户端,其中可以是Android、也可以是iOS。在这里A、B可以上传多媒体信息和下载多媒体信息。推送和消息通信不是直接推送图像、语音、视频,这些推送的仅仅是存储地址。如:当A像B发送消息的时候,由A将消息推送到B,在这个过程当中如果有语音、视频、或者图像则将其同步上传到bmob服务的文件服务存储。当B收到推送的消息以后,根据类型进行对应的处理,如果是视频、音频、图像则下载。

如发送图像的方式:

1:获取要发送的图像;

2.0:将发送图像的消息推送到B;

2.1:与2.0同步将图像文件保存到Bmob文件服务器中;

3.0 :接收推送的图像消息;

3.1:接收到图像消息以后,从Bmob文件服务器下载图像文件;

上面几个过程实现A与B之间的通信。

注:语音、视频等多媒体信息的通信过程和图像类似。文本的话不需要使用文件存储。

上面的操作就需要讲文件上传到Bmob云服务,同样的需要创建会话纪录表,需要更新文件存储表

空间(朋友圈):这里以微信朋友圈为模版,可以查看所有好友动态,同时可以单独查看个人动态,也可单独查看某个好友动态,这些动态均以时间先后的顺序查看,由最近的开始。这里采用独立的存储方式,一个好友一个动态信息表。朋友圈使用bmob提供的云端代码结合实现。当请求朋友圈的同时,调用云端代码从bmob云上查询好友朋友圈,当然朋友圈包含的应该有好友动态以及评论。使用云端代码将动态组织成html形式或返回自定义的数据结构列表(如json数据),将其返回给请求者。

这里有两种解决方案,一种是每次请求根据好友信息表来获取;一种是使用定时任务的方式来动态的更新定时任务表,当需要查看动态(朋友圈)的时候则直接读取对应的定时任务存储表即可。

由于朋友圈还包含了自己的动态以及好友动态,对好友动态应该可以评论,同样可以查看自己的动态纪录以及被评论记录,查看自己的动态则直接获取自己的动态表即可;当需要对好友动态进行评论时,则评论的内容将会根据好友表找到对应的动态表更项将该动态更新。

时间: 2024-10-10 11:13:41

[Android分享] 社交软件开发解决方案的相关文章

社交软件开发,直播系统开发,区块链IM社交app系统开发

社交软件的出现,不仅仅为我们提供了一个平台,它还最大限度地聚集各类资源,为我们认识其他地域.不同领域的人提供了各种可能性.社交软件开发 Tel: 前面138中间2315后面3201 一款社交软件的间接交流怎么做才算好? 首先就是内容来源的丰富性:用户在任意一个地方看到的内容都能轻松分享到这款社交软件上,新闻.视频.音乐.文章.图片等等,无论从哪里看到可以一键分享是非常重要的诉求. 其次是互动性:如果你分享的内容没有办法被回应,那也就没有了之前提到的间接交流具有发起方期望得到多个接收方反馈的特点,

牛A人士分享关于软件开发十个要点 (一)

英特尔® 黑带软件开发人员是我们社区中最受推崇的成员.他们因为出色的技术专长以及领导力而得到普遍认可.我们采访了一组英特尔® 黑带软件开发成员,分享他们对开发人员所犯的最严重的业务错误的看法,以及他们如何纠正这些错误.以下是他们的看法: 保持原创. 一名黑带开发人员解释道,复制别人的成功很容易. 但是,如果您真的希望赚钱,就需要做些其他开发人员没在做的事情. 提前制定您的商业计划. 许多新手开发人员都是等到最后一刻才会规划自己的商业计划和其他商业方面,但这种做法会适得其反.当您的技术专长非常适合

分享影视软件开发

分享影视系统开发公司找<詹慧:137微1089电6705>,分享影视系统APP开发,分享影视系统软件开发,分享影视源码开发,现成案例支持定制. 一.分享影视系统介绍 分享影视APP是一款汇聚影音播放神器,影片免费在线观看,视频超快加载,多个营销广告位.支持后台缓存下载.多地区的影库和充值频道等多种功能.影视玩家必备项目. 二.分享影视系统玩法 1.打开 APP 即可体验观看 注册:选填推荐码 + 短信认证 + 手机验证码 (一台设备绑定一个账号) 登录:手机账号+密码登录 (密码不能通过后台修

分享BF-TECH-J2EE软件开发工程师就业班课程

BF-TECH-J2EE软件开发工程师就业班课程 J2EE软件开发工程师就业班系列课程是讲师10年IT从业经验的总结,课程采用项目贯穿化教学,超过25个项目贯穿整个课程体系中,学员通过本课程的学习能够完全掌握J2EE开发,成为拥有至少3年开发经验的软件工程师! 北风网软件工程师IT高端培训BF-TECH 3.0 B模块(JAVA)阶段项目+项目实战共28个.1.第一阶段阶段项目 & 项目实战 共9个2.第二阶段阶段项目 & 项目实战 共8个3.第三阶段阶段项目 & 项目实战 共7个

云视频会议软件开发解决方案

与传统的视频会议系统相比,云视频会议在简化构建和操作流程的同时,更让视频会议带有了明显的个人特色.这是应用市场需求.行业变革需求和企业持续发展需求合力作用的结果,云视频会议已经开始步入了实用阶段. 事实上,随着视频会议行业开始服务化转型,提供定制化的解决方案就已经成为目前提供商的主流趋势,而且,视频会议应用的不断深化,也让行业用户的专业化需求日益强烈.云视频会议,无需专网,支持虚拟化支持,通过任何设备.任何网络都可以实现远程沟通,在提升了视频会议使用效率的同时,更加方便了用户现有解决方案里对视频

续:牛A人士分享关于软件开发的十大要点(二)

遵循计算机科学的最佳实践. 花些时间以正确的方式做事,这一点很重要.能够快速编程有助于您获得一份工作,但是,您必须能够遵循文档.设计.开发流程.通信.安全.测试和其他计算机科学的最佳实践,以便对产品和团队负责. 注重细节和设计. 强大的功能或者原创的游戏远远不够.您只有几个截屏和几行文字来引起别人的注意,所以,想想总体布局和您的应用在在线商店中的呈现方式. 保持简洁. 开发人员会容易过度开发一款产品,即具备太多的功能,他们会觉得这很酷,但最好是保持简洁.现在,重点是解决受众的主要难题,未来您可以

区块链系统开发,社交软件开发,交易所系统开发

区块链是什么? 从需求的角度总结一下:当做记录保存(身份存证)时,它是分布式账本: 当做交易或支付(跨境支付)时,它是信任机器.区块链系统开发 Tel: 前面138中间2315后面3201 区块链作为一个底层技术,为何能够让很多人花大量的时间和精力参与其中,这跟其特性是分不开的.它主要有八个特性,分别是:匿名性.自治性.开放性.可编程.可追溯.不可篡改.集体维护.无需许可. 区块链的可追溯性特点,在以下两个方面能够得到很好的体现: 1.对产品进行实时监管,防止假冒伪劣产品出现 2.追根溯源,对税

区块链交易系统开发,币圈IM聊天直播社交软件开发

区块链技术有三大功能: 1.不可更改的分布式数据库,俗称"大账本": 2.基于可追溯的公开记录而使区块链成为"创造信任的机器": 3.基于数据和信用而产生了"去中心化"的金融交易. 区块链交易系统开发电:前面138中间2315后面3201 区块链技术所创造的价值不仅有 1.加密数据: 2.信任机器: 3.去中心化降低交易费用: 此外还有更重要的"独立第三方"的自组织平台. 区块链的几个特征: (1)开放.共识:账本记录的信息是

ios 开发之个人appStore上线项目分享-即时通讯社交软件项目拆解0

分享一个appStore即时通讯上线作品的代码!本人的早期作品中,做过 几个上线的项目;目前对于我来说已经没有太大的用处;闲暇之余,写写博客,看看当时的我是怎么写出这个 应用的,下载地址 蜜聊Love  https://itunes.apple.com/cn/app/mi-liaolove/id939936656?mt=8 说明一下:聊天服务器用的是 阿里云的服务器,现在已到期 目前已无法聊天,但其他功能还在! 原文博主地址http://blog.csdn.net/yangbingbinga转载