基于android的校园聊天软件的设计与实现毕业论文内容摘要:

性签名、昵称等进行管理。 图 21 系统功能模型图 天津天狮学院 2020届本科生毕业设计(论文 ) 5 性能需求 根据以上分析,性能需求主要针对用户使用软件的的方便性和系统可靠性等方面进行考虑。 在项目设计中,主要遵循一下原则: ( 1) 可操作性:用户对于软件操作时,界面要简单、方便、直观。 操作过程中要有及时的提示,比如错误提示。 从而保证用户能正确操作软件。 ( 2) 可移植性:设计出来的软件系统要保证在不同版本的 Android 手机上运行不会崩溃,同时保证数据的正确性。 ( 3) 实用性:从用户 的实际需求去考虑软件的功能需求。 ( 4) 安全性:系统要保持数据的正确性,在长时间的使用过程中保证系统不易崩溃。 同时软件在运行和不运行时都要保护用户的注册信息和软件通过检测用户本地信息时所获得的信息都不被泄露,从而确保用户使用该软件的安全性。 ( 5) 可靠性:系统要有一套良好的运行环境。 确保系统稳定、长时间的运行不出错,从而使用户可以放心使用软件。 ( 6) 可维护性:系统软件在开发过程中不但要保证用户需求的功能实现,还要考虑未来为应对用户需求而更新后续版本的功能需求,以及功能的扩张性,从而维护好软件的可持续性。 本章小结 本 章主要阐述了项目方案和需求分析,其中项目方案包括开发的工具和搭建的环境介绍;需求分析包括主要参与者、功能需求和性能需求。 主要参与者又包括系统和用户;功能需求包括用户注册、用户登录、通讯录管理、聊天管理、个人信息管理。 天津天狮学院 2020届本科生毕业设计(论文 ) 6 3 软件设计 软件功能设计 根据软件需求分析,该软件功能主要分为以下几个模块:用户注册模块、用户登录模块、好友管理模块、用户信息管理模块、聊天管理模块。 以下是系统功能模块图,如图 31: 图 31系统功能模块图 客户端功能设计 根据上述本软件需求分析,用户注册模 块设计如下: ( 1) 用户运行软件后需要通过注册界面注册账号从而使用该软件,之后软件系统验证正确后将与服务器进行通信,将注册信息发送给服务器,服务器将发回允许指令。 ( 2) 注册的用户名不允许重复,否则服务器将会报错。 ( 3) 密码设置时 ,系统要求输入两次密码 ,之后服务器将验证系统发过来的密 天津天狮学院 2020届本科生毕业设计(论文 ) 7 开 始输 入 用 户 名 和 密 码验 证 用 户 格 式验 证 密 码 格 式分 配 u id 进 行 注 册结 束提 示 用 户 名 错 误提 示 用 户 密 码 错 误NYYN码包信息。 图 32登录流程图 根据上述本软件需求分析,用户打开软件后,用户将进入登录页面,此时只要输入已注册的用户名、用户密码就可以登录成功。 用户登录模块设计如下: ( 1) 用户名错误:系统提示该用户名已存 在或不存在即未注册。 此外用户名必须多于六位数。 否则系统也会提示错误。 ( 2) 密码验证错误:登录界面中,当用户登录时填写的登录密码被系统提示错误的时,用户需要重新填写登录密码。 ( 3) 其它错误:当用户进行一些不当操作也会引起错误。 从而导致登录失败。 ( 4) 自动登录功能:每个使用该软件的用户在第一次成功登录后,再次登录该软件时,系统都会自动选择自动登录。 因为系统会把用户之前的登录信息缓存到本地手机中,下次登录时软件系统 将自动检测缓存的信息,从而自动登录。 天津天狮学院 2020届本科生毕业设计(论文 ) 8 开 始登 陆是 否 首 次 登 陆输 入 用 户 名输 入 密 码验 证 用 户名登 陆 成 功结 束显 示 错 误自 动 登 录NYYN 图 33 用户登录流程图 用户通 过转入个人设置界面进行信息设置,用户管理设置模块设计: ( 1) 用户头像管理:用户可以设置自己的头像,上传方式可以通过本地相册和拍照两种方式上传头像,上传成功后系统将保存信息。 ( 2) 用户昵称管理:用户可以设置自己喜欢的昵称,用设英文 16 个字符,用户设置完成昵称后,点击确认按钮,上传信息。 ( 3) 用户心情短语设置:用户可以设置自己喜欢的心情短语,设置完成后,系统将保存信息。 ( 4) 用户密码重置管理:当用户为了自己信息安全考虑时,可以进行密码的重置。 密码重置的时候,为了账号安全用户必须验证原来的密码。 ( 5) 设置管理其他信息:用户可以对聊天 中的消息提醒进行设置,可以调节 天津天狮学院 2020届本科生毕业设计(论文 ) 9 开 始用 户 输 入 发 送 信 息文 字 图 片 语 音转 换 格 式判 断 长 度发 送 至 数 据 库结 束NNNY YYY音量大小,也可以设置为震动。 同时该软件的系统音量也可以如此设置 根据需求分析,好友管理模块设计如下: ( 1) 用户可以进行添加好友、删除好友、查找已经添加的好友的操作。 ( 2) 用户也可以通过搜索功能键在相应的位置输入想要添加的用户名,从而添加好友。 如果陌生人想添加你为好友,只要他进行之前的操作后你也会收到验证消息,这时你可以选择是否添加他为你的好友。 根据软件需求分析,聊天功能管理模块设计如下: (1) 文字聊天:用户在聊天过程中发送的纯文本消息将会被系统软件传输到服务器端,服务器端将检查发送过来的 信息包格式之类的正确性,通过验证后给软件发送反馈。 软件收到回馈后,将给用户提示。 (2) 语音消息:好友之间可以发送语音消息。 用户点击聊天界面下方的发送语音按钮不放后,软件将开始录音。 (3) 图片文件:好友之间可以发送图片文件。 用户可以选择手机本地图片和拍照两种方式。 消息发送流程图 34如下: 图 34消息发送流程图 天津天狮学院 2020届本科生毕业设计(论文 ) 10 服务器功能设计 目前市场中小范围局部的聊天软件主要为: 基于环信、融云等第三方 IM 服务器的通讯聊天软件或者是基于 XMPP 协议利用OpenFire 数据 库的通讯聊天软件。 此次本项目软件主要使用基于 XMPP 协议的 OpenFire 服务器, XMPP 协议作为一个被广泛使用的消息协议,有大量的网络资料和成熟开源模块,例如在 Android 和IOS上,就很方便集成 XMPP 协议。 IM 作为一个复杂的系统,有方方面面需要考虑,使用成熟的协议,能帮助我们避免很多问题,提高开发效率。 Openfire 采用 Java 开发,开源的实时协作( RTC)服务器基于 XMPP( Jabber)协议。 Openfire 安装和使用都非常简单,并利用 Web 进行管理。 单台服务器可支持上万并发用户。 开发者 可以使用它轻易的构建高效率的即时通信服务器。 由于是采用开放的 XMPP 协议,您可以使用各种支持 XMPP 协议的 IM 客户端软件登陆服务 OpenFire 作为服务器。 允许多个客户端同时登录并且并发的连接到一个服务器上。 服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,客户端与服务器端之间的通信就在该会话的上下文中进行。 在 Oponfire 服务器中。 针对每个用户的请求,创建一个线程来进行响应,同时采用线程池来创建和管理线程,提高了服务器的执行效率。 线程池的大小可以根据服务器在运行的过程中接收到的用户请求的数 量进行自动调整。 openFire 服务器如图 35所示, openFire 消息发送原理图如图 36所示。 图 35 openFire服务器 天津天狮学院 2020届本科生毕业设计(论文 ) 11 图 36 OpenFire消息发送基本原理图 天津天狮学院 2020届本科生毕业设计(论文 ) 12 软件的数据库设计 通过以上对客户端功能设计,要想实现不同客户端的用户通信,服务器端功能主要包括:对客户端发出的消息的侦听、存储、反馈。 所以数据库设计方面也要满足这些要求。 本项目软件服务器端主要采用 OpenFire 服务器的数据管理功能对数据进行管理,下面的数据库表列出了系统运行时需要涉及的数据信息,共 4 张表 ,分别是用户注册信息表、好友信息表、聊天信息会话表和通讯信息表。 (1) 用户注册信息表,用于存放用户注册时录入的信息,如下表 34所示。 表 34 用户注册信息表 字段名 类型 约束 键值 说明 User_id String 非空 主键 内部使用 id User_name String 非空 注册后系统使用 id User_phone String 非空 用户手机号 password String 非空 用户密码 ( 2)好友信息表,用于存放联系人信息,如下表 35所示。 表 35 好友信息表 字段名 类型 是否为空 键值 说明 T_id int 否 主键 自增长 id F_ower_id string 否 用户 id F_contact_id string 否 好友注册号 F_status string 好友在线状态 F_nickname string 好友昵称 F_mood string 好友心情短语 F_phone string 好友号码 F_portait_uri string 好友使用头像 天津天狮学院 2020届本科生毕业设计(论文 ) 13 ( 3)聊天会话信息表,主要存储用户和好友的会话信息,它的字段如表 36所示: 表 36 聊天会话消息表 字段名 类型 约束 键值 说明 _id int 非空 主键 自增长 id Owner_id string 非空 拥有者 id Data_id string 非空 数据 id Contact_id string 非空 好友 uid D_time string 会话创建时间 D_last_content string 会话最后内容 D_last_time time 会话最后时间 D_last_type int 会话最后消息类型 Dcount int 会话消息数目 ( 4)通讯消息表,存储的是用户与联系人通讯的消息,它的字段如表 37 所示: 表 37 通讯消息表 字段名 类型 是否为空 键值 说明 T_id int 否 主键 自增长 id L_owner_id String 否 用户 id L_data_id String 否 数据 id F_uid Stirng 否 联系人 id L_data_time time 消息时间 天津天狮学院 2020届本科生毕业设计(论文 ) 14 表 37(续)通讯消息表 字段名 类型 是否为空 键值 说明 L_data_type int 消息类型 L_data_content Stirng 消息内容 L_data_uri String 图片 uri L_data_state int 语音发送状态 L_data_audio_marked int 语音消息读取状态 本章小结 本章主要根据需求分析对软件设计进行了如下设计:注册模块设计、登录模块设计、用户管理模块设计、个人信息管理设计、通讯录模块设计以及数据库的设计。 天津天狮学院 2020届本科生毕业设计(论文 ) 15 4 软件实现 服务器端 配置 OpenFire 服务器 在配置或二次开发 OpenFire 服务器之前,首先应该去官网下载 OpenFire 相关的构件和程序。 当成功下载好 OpenFire 服务器后,我们首先将其解压,然后在openfile/bin 目录下找到 ,双击即可启动 OpenFire 服务器,如图 41所示。 图 41 启动 OpenFire服务器 当成功启动 OpenFire 的服务器后,我们输入: 进入OpenFire 服务器的管理页面。 OpenFire 管理页面的端口为 9090,缺省账号和密码都是 admin。 如果是第一次登录 OpenFire 服务器的管理页面,我们则需要配置一些初始信息,当成功配置好后,我们便可以完成登录。 OpenFire 的管理页面包含 5 个菜单选项,分别是服务器基本信息配置选项、用户组管理选项、会话管理选项、分组聊天选项和插件选项。 其中服务器基本信息配置选项主要包含了 OpenFire 的一些常规配置,比如端口的配置、系统。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。