基于SSM的社交软件的设计与实现
作者:蔡炳炎 符志强 刘磊安ssm框架实现登录功能
来源:《电脑知识与技术》2018年第32期
        摘要:该文设计基于Spring+Spring MVC+Mybatis框架的社交软件,根据用户的兴趣和使用记录采用推荐算法推送志趣相投的好友,提高社交的乐趣与效率。软件前端采用Jquery技术和MUI框架构建基于HTML5的App;后端采用SSM框架和WebSocket协议完成用户之间的社交功能。
        客户端包括热点消息、热点板块、阅历文章、发表评论、好友消息、好友推荐和个人中心等功能。后台部分包括用户管理、热点管理、阅历管理、好友管理、评论和举报管理等功能。软件界面友好、风格简约,使用者可以有效扩展自己的社交圈。
        关键词:Spring;MyBatis;WebSocket;社交软件
        中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)32-0067-02
        1 背景
        近年来网络将全球的人们紧密地联系在一起,人们的生活方式也发生了翻天覆地的改变。日常的出行、娱乐、购物、工作等都可以通过网络完成。尤其是社交网络更是出现了高速发展,从话题探讨、技术学习、与人交友、相约旅游、发布动态都能够在社交网络上获得回应。目前无论是国内还是国外,都有许多高质量的社交网站或应用。社交网络有着现实社交所没有的便捷性和多元化,它既可以维护现实中的关系又可以根据兴趣爱好拓展新的社交圈[1-3]。
        但目前的社交网络并没有在选择、推荐社交圈方面给予用户足够的推荐与支持。该软件着重打造以兴趣为主导的深入交流的社交圈,通过用户的兴趣和使用记录,采用好友推荐算法匹配潜在的好友。用户的经历、经验分享可以高效传播,让用户在获取知识的同时到志趣相投的好友,获得更多的信息资源。
        2 好友推荐算法
        好友推荐算法有很多种,可以根据共同好友数来推荐,根据距离推送,也可以根据兴趣
爱好的相似度来计算。常见的有基于内容的推送算法和协同算法。该设计中的推送算法主要是推送志趣相投的好友给用户,主要是根据兴趣爱好和发送过的热点消息相似度进行匹配推送[4-5]。
        每个用户在注册后填写自己的兴趣爱好,系统通过计算每相邻的两个字符串的相似度得出一个小于1的相似值,建设这个值为I。除此之外,每个用户都会发布热点消息,热点消息的类型有很多种,在发布热点消息的时候就会根据类型保存在数据库中。系统会匹配所有用户与本用户热点消息类型相同的篇数占总篇数的百分比,假设该用户的总热点消息数为T,相似的为S,相似率用P表示,所以推送的表达式为:
        3 系统设计
        该社交软件主要分为客户端App、后台管理系统。使用人员分为客户端用户和系统管理员。使用客户端的用户需要使用邮箱注册账户进行登录,用户拥有以下基本功能:修改账户信息、添加好友、系统推送好友、好友聊天、热点板块信息、提问答疑、阅历文章、历史热点消息管理、历史阅历管理等功能;后台管理系统的用户功能包括用户管理、阅历管理、热点消息管理、热点板块管理、举报管理等功能。以下将对主要的几个模块进行详细叙述:
        3.1 热点消息模块
        热点消息模块包含板块消息和热点消息。其中板块消息分为固定板块和实时板块,固定板块总是不变的,实时板块则会根据节假日或者一些活动而更改板块的名称。
        3.2 阅历模块
        对于有过相关热点关注内容经历的用户,可以将自己的阅历写成文章进行发布。阅历模块,将默认显示所有用户的阅历文章,用户可以对阅历文章进行顶、踩或者评论,也可以对有不良信息的文章进行举报。想要看阅历文章全文可以点击阅历跳转到详情页。如果用户想要查某个阅历,可以在最上面的搜索框输入关键字进行搜索。或者是点击右上角的漏斗按照阅历的类型来筛选阅历。如果是想要进一步咨询发布阅历的人的话,可以点击作者的头像进行好友添加,进一步咨询。
        3.3 好友消息模块
        该模块可以查看用户与好友的聊天消息,并且可以查看用户自己的好友,点击好友可以和好友进行聊天,同时用户可以点击添加好友进行用户帐户搜索,并且添加为好友。除此之
外,在该模块可以查看系统推送给用户的好友,并且进行好友添加。
        3.4 个人中心模块
        该模块主要是用户修改用户个人信息以及修改帐户密码。同时可以查看用户曾经发送过的热点消息和阅历文章,对热点消息和阅历文章进行管理。长按历史热点消息和阅历文章可以进行删除。
        系统功能结构如图1所示。
        4 系统的实现
        该社交软件普通用户使用的主要是客户端。用户登录后进入到首页,首页分为三部分,从上往下,第一部分是固定板块,用户可以根据自己的兴趣进入这些板块玩;第二部分是实时板块,系统管理员会根据节日和活动或者一些比较新颖的想法来修改这些板块的名字,用户点击可以进入这些板块,查看和发布相关的热点消息。第三部分是将最热的热点消息和阅历文章置顶在这里,每个进来的用户都可以看见,并且可以点赞,评论这个热点消息和阅历文章。最热的推送计算方式是将计算每个热点消息/阅历文章的点赞数和评论数之和,然后通
过排序的方式获得最热的一个并显示出具体的内容。
        下面介绍社交App各模块的使用方法:
        4.1 使用热点消息
        每一个类型的热点消息点击进去的标题和消息头都不一样,用户点击首页的固定板块或者实时板块,进入到热点消息页面,该页面会展示出所有用户发布的该话题的热点消息。用户可以对某个具体的热点消息进行转发、评论、点赞以及举报等操作,点击加号进行编辑发布热点消息。
        4.2 使用阅历文章
        用户点击首页的阅历,将默认显示所有用户的阅历文章,用户可以对阅历文章进行顶、踩或者评论,也可以对有不良信息的文章进行举报。想要看阅历文章全文可以点击阅历跳转到详情页。如果用户想要查某个阅历,可以在最上面的搜索框输入关键字进行搜索。或者是点击右上角的漏斗按照阅历的类型来筛选阅历。如果是想要进一步咨询发布阅历的人的话,可以点击作者的头像进行好友添加,进一步咨询。功能如图3所示。
        4.3 使用好友消息
        好友消息模块可以看到最近和自己聊天的好友,并且点击好友可以进行聊天,该模块还提供了用户搜索添加好友和系统推送的好友添加等功能。
        4.4 使用个人中心
        该模块可以查看自己的历史热点消息和历史阅历文章,样式基本相似。点击具体条目可以进入到详情页,长按可以删除。并且可以修改自己的基本信息以及帐户密码。
        对后台管理模块,管理员登录后进入首页,能够看到最近一个星期新增的用户数和总的用户数,以及热点消息总数和阅历总数。如图3所示。
        管理员可以查看所有的用户基本信息,并且可以删除用户。管理员可以查看被举报的所有热点消息、阅历以及评论,并且对被举报的内容做出警告用户并且删除操作或者撤销举报等操作;可以对已经被警告过五次的用户进行封号处理,对已经封号的用户也可以进行解封处理。
        管理员可以查看所有已经存在的热点板块,定制热点板块的内容,客户端的实时板块会根据后台新添加的最新内容来更换。管理员可以查看所有的热点消息,并且对热点消息进行管理。
        5 结论
        该社交软件是基于Spring+Spring MVC+MyBatis框架开发,使用HTML5+MUI构造App端,提供一个供在用户进行交流讨论、阅历共享和在线交友的平台。整个系统主要分为App端和后台管理系统。系统使用推荐算法根据兴趣爱好和发送过的热点消息相似度进行匹配推送,增加社交中的兴趣与乐趣,提高用户社交软件的使用效率,提高用户获取高价值信息的能力。
        参考文献:
        [1] 耿瑞利, 申静. 社交网络用户知识共享研究:特征、内容与展望[J]. 图书情报知识, 2018(1): 16-26.
        [2] 孙国强, 石文萍, 王莉. 国内在线社交网络体行为研究现状与展望[J]. 现代情报,
2016(2): 38-42.
        [3] 杨海娟, 原薇, 王文艳. 国内外社交类应用持续使用研究综述[J]. 情报科学, 2017(3): 164-170.
        [4] 王玙, 高琳. 基于社交圈的在线社交网络朋友推荐算法[J]. 计算机学报, 2014, 37(4): 801-808.
        [5] 高永兵, 杨红磊, 刘春祥, 等. 基于内容与社会过滤的好友推荐算法研究[J]. 微型机与应用, 2013, 32(14): 75-78.
        【通联编辑:谢媛媛】