微博本意指的是微型博客,用户可以在微博上添加文字图片或者视频发表即时信息。微博操作简单,容易上手,信息发布很便捷,并且具有强大的转发功能,表示任何用户都可以转发向他推送的信息。另外在微博上还可以建立私人的聊天对话和群组。
1.3本文的主要研究内容
随着互联网技术的迅速发展,基于网络技术的通信方式给人们的生活带了巨大的改变,甚至成为了网络应用的主流软件。通过网络聊天软件,人们可以实时地交换信息,并且在如今无线上网的环境下,聊天软件花费小的特点更是成为了人们选择它作为日常交流方式的主要原因。本文所研究的网络通信系统,即设计与开发一个主要具有聊天功能和附加其他功能的聊天系统,使人们能更加方便地随时进行即时交流。随着时代潮流的变化,在这个信息化的社会环境里,人们每时每刻都在进行信息交流,因此网络通信聊天软件变得越来越重要。它不仅作为日常生活中分享信息的渠道,也成为了很多人在工作办公时使用的工具。比如以视频的形式召开电话会议不仅能达到开会的目的,同时也节约时间和资金等;比如现在倡导的无纸化办公,人们可以利用网络通信软件来传输文件,既节约资源又节省人力。因此研究网络通信系统的实时性、交互性等特点,对人们生活带来便利具有非常重大的意义。
二、网络通信系统的相关技术与协议
由于即时通信的便捷性,以网络即时通信方式为主的聊天软件在目前的软件市场上最受欢迎,人们可以利用通信聊天软件来基本实现信息自由,它的多种功能同时也满足了人们的生活需求。本文所研究的网络通信系统主要使用了以下相关技术和协议,具体介绍如下:
2.1websocket协议
网络通信聊天系统最大的特点则是选择了websocket协议,这个协议里面包括了握手连接和数据传输的两个步骤。简单来说就是在执行第一步的握手应答之后,会建立起一条安全性很高的信息通道,然后进行信息交换、数据传输等功能。
在网络通信系统中,存在Client(客户端)和 Server(服务端)。众所周知,我们以前所使用的传统HTTP协议是无状态的,只有请求和回答两种信息状态。这意味着客户端只能发出请求的消息,服务端只能发出回答的消息。每次的请求信息都由客户端主动向服务器发起,服务端在处理后将消息返回给客户端,最大的不足便是服务端不能主动向客户端进行推送消息,那么这一点在需要服务端主动向客户端推送即时消息上则是无法满足的,比如新闻推送、订阅消息、游戏互动等。事实上,为了解决传统HTTP协议无状态的问题,想出了轮询技术和Comet技术的解决办法。轮询技术指的是客户端除了首次向服务器发送请求的消息,中途还要定期地不间断地向服务端发送消息询问请求是否被处理,直到服务端已经处理了请求消息向客户端返回。可是我们可以明显地观察到,在进行轮询方法的过程中,是浪费了很多的流量与资源,导致客户端会发送多次无作用的请求消息。Comet技术可以分为长轮询和流技术。其中长轮询就是在轮询的基础上改动客户端向服务端中途访问请求是否被处理的的间隔时间,但这种方法仅仅适用于数据改动变化不频繁的情况。而另一种流技术,指的是客户端与服务端之间建立一种长连接,能够保证服务端随时更新消息的处理情况并主动返送回客户端,但这种方法需要服务端具备一定的性能。
综上所述,这些方法都无法彻底解决真正的问题,这种客户端先请求,服务端再回答的方式无法真正满足即时信息的需求,而websocket协议不一样。因为在websocket协议里,服务端和客户端之间建立了双向且平等的关系。一方面客户端可以向服务器主动发送信息和接收服务器回馈的消息,另一方服务器也可以接收客户端的信息和主动向客户端推送消息。在这样的原则之上,信息之间的发送和接收就此建立了。其中,WebSocket实际上是通过TCP连接的,每次传输不再带上重复的头部数据,所以它的数据传输量比轮询技术和Comet技术小了很多。另外它实现了客户端与服务器的全双工通信,扩展了客户端与服务端的通信功能,使服务端也能主动向客户端发送数据。同时,websocket协议具有兼容性强、性能高效、没有同源限制等的优点。因此选择了websocket协议来构建本文的网络通信系统。
2.2uni-app
uni-app是开发项目时使用的一个前端框架,建立在满足多端平台的需求之上。简单来说,就是程序员只用编写一套完整的代码,就可以在多个平台或者小程序上运行出来。 在开发项目的后期,无论是客户想要对项目进行修改变化,还是程序员想要扩展项目或迭代开发等,uni-app都可以轻松容易地完成,从很大程度上提高了项目的开发效率,使用户们获得了更加优秀的体验感,因此受到了广大开发者们的喜爱。
uni-app有两种方式可以快速创建项目,分别是通过HBuilderX可视化界面和vue-cli命令行。
uni-app有着许许多多的优点,具体详细的介绍如下:(1)开发者和案例数量多。从一些方面来说,uni-app确实能在一定程度上简化复杂的开发项目,所以使用uni-app的软件开发者和案例有很多。(2)平台能力不预期。在多个平台端上编译时,uni-app会通过条件编译+平台特有API调用,调用专有能力很强。(3)性能体验优秀。有经过改进后的混合框架,能提高加载新页面的速度,使用户体验更流畅。(4)周边生态丰富。拥有各种各样的插件,支持更多平台或小程序的组件等,兼容性强大。(5)学习成本低。基于通用的前端技术栈,采用vue语法+微信小程序api的方式进行自我学习,学习难度简单轻松,没有超额的学习费用支出。(6)开发成本低。既大幅度提高了开发项目的效率,又彻底降低了开发成本、维修管理、测试等方面的费用。
其实综上所述,uni-app对于程序员最大的好处就是不用再学习那么多且复杂的前端框架,掌握uni-app就可以只研发一套代码,然后运行于多个平台之上了。另外,uni-app可以降低项目开发的成本,在多个平台上能吸引更多的用户,所以本文所研究的网络通信系统即选择了uni-app。
2.3其他技术
jpa指的是java持久层API,描述一种映射关系,将运行期的实体对象持久化到数据库中。在本系统时还使用了springboot、spring、springMVC等技术。
三、系统可行性分析
3.1技术可行性分析
本系统采用Java编程语言,用IDEA工具进行开发,数据库采用MYSQL8.0.12进行开发。Java语言是一种面向对象的编程语言,相比之下具有更加安全可靠的特点,无论是在编写项目时还是以后对项目做修改都能更好地进行操作。另外,为了避免在之后做复杂的项目编程时遇到相关的技术问题而无法解决,所以本论文选择了已经比较成熟的java语言作为编程语言。IDEA对编码工作提供了很好的支持和帮助。MYSQL8.0.12数据库系统提供了丰富的数据类型和简洁的数据操作。
基于java的网络通信系统设计与实现(二)由毕业论文网(www.huoyuandh.com)会员上传。