太赞了!用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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。