太赞了!用Java实现的在线聊天小项目,适合巩固基础(附源码)
对于学习完JavaSE的小伙伴,急需要做一个JavaSE的综合性项目来练练手,提升综合编码能力,那么该JavaSE实现的DQ在线聊天项目项目就非常适合你来练手,该项目的主要目的是让学完Java SE的同学对Socket网络编程、IO流、线程及线程池等知识进行一些实战综合运用。
该项目应用的知识点包括下面这些内容:
Thread的运用、线程池的运用、IO流的使用、Socket的运用、项目打包、引入jar包、拆分模块
核心功能实现了用户加入即时通讯时的提示,用户名重复校验,客户端展示在线用户,客户端向服务器端发送消息,退出即时通讯等功能。
通过本项目的学习,有利于巩固加强对JavaSE一些核心技术的理解和运用,提升综合编码能力,是进行JavaSE综合练手不可多得的视频课程;
DQ在线聊天项目资料源码下载:http://www.bjpowernode.com/?toutiaoDQ
学习完JavaSE课程的人群,想通过项目案例巩固JavaSE基础的同学;
•001.项目介绍
•002.项目导入
•003.登录界面代码分析
•004.客户端socket代码编写
•005.服务器端socket代码编写
•006.用户登录弹窗提示功能
•007.校验用户昵称是否存在
•008.展示在线用户信息
•009.发送聊天信息
•010.退出功能
•011.头像相关代码分析
•012.拆分模块
聊天机器人开发实战—(微信小程序+SpringCloud+Pytorch+Flask)
趁着五一有时间,先把大三下个学期的期末作业做了,把微信小程序和Java开发的一起做了。顺便把机器学习的也一起做了。所以的话,我们完整项目的技术体系主要有 微信小程序开发,Java Web开发(因为我喜欢把admin后台管理和用户端服务分开,所有我选择SpringCloud做一个切分,实际上就是两个服务+网关),然后是基于Pytorch的NLP对话机器人,那么关于对话机器人的话,这个没办法,只能继续用先前GPT2的那个,没办法,有几个效果不错的,但是嘛,跑不动,当然也可以直接那啥,但是吧有一定的风险,能跑就行了,架子搭起来,上面都好说。
同样的,文章分为上下两篇,后端与前端部分,其实也没办法,一天没写完,中间准备会议录屏去了。中间还遇到了Python的一个bug,查了小半天的issue。
整个项目的设计非常简单,也没有做什么复杂的东西,dome而已,没必要那么复杂,也不见得那些老师可以看懂,没必要把自己搞得那么累,能花500搞定绝不花1000精力搞定。
所以,整个项目是很简单的,不过涉及到的东西不少,所以问题在你对于上面提到的技术熟不熟悉。
ok,这里我们可以先看到我们整个项目的基本架构。由于这里没有涉及到部署,所以这里的话,我就不画那些花里胡哨的东西了。
那么这里的网关的话,其实就是这个SpringCloud当中的GateWay,然后我们的flask算法服务都是注册到nacos,进行服务发现注册调用的。通过网关我们开放了对外的访问接口,但是直接通过网关不能直接访问到flask程序,这个程序是通过SpringBoot进行远程调用,远程调用的地址是通过Nacos获取的,换一句话来说,我们的算法服务是属于内网服务,不暴露。
那么在nacos的视角是这样的:
ok,废话不多说,我们先来看看这个SpringCloud服务是如何构建的。
其实这里的话,我们先是偷了个懒,没错直接把先前开发WhiteHole准备好的模板工程拿了过来。这个模板工程是基于人人开源做的。当然我们在这个基础上做了改动,使得可以更加符合我的需求。
ok,对SpringCloud的服务的话,我们其实就两个,一个是后台管理,还有一个是正经微信小程序的服务端。Python不提供直接的服务,都是通过Java程序调用的。
那么关于这个后台的搭建的话,可以看到我以前的这两篇博文:
huterox.blog.csdn.net/article/det…
huterox.blog.csdn.net/article/det…
这边的话,我就不复述了,完成之后是这样的:
之后是,调用我们的Python服务,其实也就是我们的算法,我们要的效果是这样的:
我们访问的是SpringBoot程序
然后它调用到Flask程序,然后给到我们的前端
那么这里的实现的话,很简单,就是拿到nacos然后就好了。
之后,是我们的算法服务构建。 首先我们的算法还是先前的这个项目的基础上改动的: gitee.com/Huterox/gpt…
那么改动的地方的话,就两个地方:app.py,和controller.py
首先是controller:
然后是我们的app服务。
这里的话,我先说一下有些坑在这个python当中,我们连接nacos使用的是这个:nacos-sdk-python。但是在我实际的使用当中,发现这个玩意会莫名其妙下线,但是服务是正常的。可能是版本还是什么问题,这个咱也不知道,也不敢说,最后查了查iusse,最后的话,写了个临时的方案,具体说明原因的话,我这里就不展开了。因为也不确定分析的对不对,猜测应该是这样的。
这个玩意,一个作孽可以当三个交,还是能玩玩的。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。