自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 egret+java小游戏服务端10-重构指令传输,单线程改为多线程阻塞队列

文章目录前言旧版指令传输新的指令传输新建阻塞队列增加IRoom接口方法在Netty的Channel监听中添加map将IRoom接口改为继承Runnable旧版指令系统装饰器重构前言服务端GitHub地址:https://github.com/griii/Hak-Server小游戏网址:https://www.guorii.cn/hak旧版指令传输原先的指令传输仅仅通过netty的channelRead回调函数中调用,如下:@Override protected void channelRe

2021-06-24 14:47:12 206

原创 egret+java小游戏服务端09-游戏核心线程池构建、Room接口及抽象类设计

文章目录前言线程池构建核心线程前言服务端GitHub地址:https://github.com/griii/Hak-Server小游戏网址:https://www.guorii.cn/hak线程池构建使用@Bean将构建出来的线程池放入Spring容器中单个服务器的线程池,要求:核心100线程,无法添加线程,也就是说等待队列使用不存储的SynchronousQueue即可,拒绝策略为向用户返回拒绝值,或是向其他服务器进行负载均衡import org.springframework.bean

2021-06-23 23:10:36 322

原创 egret+java小游戏服务端08-配置SpringBoot开发、生产环境和对应的日志输出,Linux服务器部署

文章目录前言配置环境配置日志输出尝试部署到Linux服务器中前言服务端GitHub地址:https://github.com/griii/Hak-Server小游戏网址:https://www.guorii.cn/hak上文中配置了玩家指令的日志输出,由于在开发环境中并不需要输出玩家指令,因此应该将开发环境和生产环境的日志输出级别分开来,而先前因为一直没有这方面的需求,所以一直没有配置环境。配置环境上文中配置了玩家指令的日志输出,由于在开发环境中并不需要输出玩家指令,因此应该将开发环境和新

2021-06-08 21:45:03 339

原创 egret+java小游戏服务端07-lombok引入及整合Spring实现的AOP日志

文章目录前言一、引入lombokpom依赖idea配置@Date、@Slf4j使用二、AOP配置pom文件引入AOP配置AOP类前言前言服务端GitHub地址:https://github.com/griii/Hak-Server小游戏网址:https://www.guorii.cn/hak一、引入lombokpom依赖<dependency> <groupId>org.projectlombok</groupId>

2021-06-08 11:37:41 169

原创 Java不同方式实现线程的生产者消费者(synchronized、Lock、BlockingQueue)

文章目录实验记录使用数组作为缓冲区运行结果及Monitor同步方法导致的不公平竞争锁Lock解决生产者消费者问题简介Lock实现方式Lock实现生产者消费者模式代码运行结果及分析阻塞队列实现实验记录首先分析生产者与消费者问题需要解决的点:1.在缓冲区为空时,消费者不能再进行消费2.在缓冲区为满时,生产者不能再进行生产3.在一个线程进行生产或消费时,其余线程不能再进行生产或消费等操作,即保持线程间的同步4.注意条件变量与互斥锁的顺序由于笔者通过java线程的方式实现,java库封装了许多可以便

2021-05-30 13:49:24 186

原创 egret+java小游戏服务端06-重构指令策略(策略模式+装饰者模式)

文章目录前言原先的指令系统原先的指令系统缺点新的指令策略定义顶层抽象一个简单的Move指令策略测试是否符合开闭原则扩展跑动策略:新增可穿墙跑动"装饰器"实现穿墙Buff装饰器最终穿墙策略最终修改MsgManage为新策略模式前言服务端GitHub地址:https://github.com/griii/Hak-Server小游戏网址:https://www.guorii.cn/hak原先的指令系统大概介绍一下原先的指令系统:netty信道接收到指令消息后,传给MsgManage类执行publi

2021-05-29 21:48:52 157

原创 egret+java小游戏前端05-egret的初步使用

本文撰写于小游戏大致架构开发之后,一些细节可能不够清晰。小游戏网址前言由于是第一次使用egret游戏引擎,而且也是第一次接触typescript语言(之前接触过js但是还是有些区别的)。以下文章均由个人经验构成,初次使用egret的时候难免有许多不足之处,将在文中呈现些许。一、egret工具1.egret launch作为最主要的ui图形化工具,里面可以下载安装引擎及其他工具等。2.egret Engine主要引擎,应该是用于整个引擎架构以及渲染可参照官方Hello World文档文档

2021-04-21 23:25:36 424

原创 egret+java小游戏服务端04重构指令解析功能(反射实现开闭原则)

文章目录前言一、修改Player类中的指令函数二、修改指令解析功能总结前言重构了整个pojo类,抽象出各个职责的玩家类后,原先的指令解析后的调用均由MsgManage完成,现在需要改成传送给相对应的IPlayer继承类完成一、修改Player类中的指令函数这里展示了PlayerPeople中的move和moveOut函数@Override public void move(Instruct instruct) { if (this.move != true) {

2021-04-20 22:46:20 117

原创 egret+java小游戏服务端03重构pojo类(简单工厂+单一职责接口)

文章目录前言一、重构pojo接口及实现类1.抽象底层IPlayer接口INormalPlayerIPoliceThief2.实现类二、简单工厂模式创建Player1.创建Player枚举类型2.创建PlayerFactory工厂类3.在MsgManage中调用工厂创建总结前言前面构建整个架构的时候没有设定Player的抽象接口,玩家的指令解析后调用的方法也不是Player中的函数,这对后续的维护和扩展非常不友好。由于player由Room类中的players存放,因此所有IPlayer均不作为Spr

2021-04-20 22:41:02 144

原创 egret+java小游戏服务端02创建基础pojo类和构建游戏逻辑

文章目录一、创建基础pojo类1.Instruct指令类2.Player玩家类3.Room类二、游戏逻辑1.前端发送的指令处理2.MsgManage接收到指令后进行处理3.MsgManage的指令处理一、创建基础pojo类1.Instruct指令类public class Instruct{ private String order;//指令类型 private long time;//指令的发送时间戳 private Object obj;//指令包含的内容 privat

2021-04-20 21:01:16 135

原创 egret+java小游戏服务端01建立Netty的WebSocket服务

文章目录前言二、初始化Netty1.创建实现ChannelInitializer 接口的类2.在pipeline.addLast(new TextWebSocketFrameHandler());处添加的是自己创建的处理器,如下三、创建Netty服务器类,运行Netty服务前言服务端基于Springboot,Netty由pom引入。本文写于整个服务端架构初步完成后,部分细节内容未呈现并且有许多架构的不足之处后续会进行重构修正# 一、pom引入Netty依赖<dependency>

2021-04-20 20:46:04 146

原创 egret踩坑-父组件has-a子组件时子组件调用动画失效

若一个组件中包含一个子组件(以has-a的形式存在而不是以Child的形式存在),不要将子组件作为参数传给父组件的构造函数,父组件构造函数运行this.component = component时不知道为什么会调用子组件的构造函数创建一个新的子组件,而不是使用以参数形式传进来的子组件(也可能是我的构造函数代码写错了?毕竟以前没有接触过TypeScript,确实是找不到原因)。这样做的直接影响就是如果子组件含有动画,调用自己创建的子组件的play()函数会失效。后来发现我错在哪里了,TypeScript的构

2021-04-14 23:18:00 173

原创 小程序后端D1-服务器验证码生成以及Swagger2接口文档初次使用

生成验证码图片在指定路径(这里放在C:/code文件夹下)package com.costream.util;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.i

2021-03-25 23:56:05 504

原创 Springboot+Vue实现在线聊天室项目-总结反思

终于完成了计算机网络的大作业——SpringBoot+Vue全栈聊天室页面。这个不大的项目前后却费了将近一个月的时间,大部分时间都浪费在了测试环境和上线环境的切换(事实告诉我,部署一个可以跨域访问的测试环境是有多么的重要,不停的打包Vue项目打Jar包SpringBoot项目真是十分操蛋)。另外,也慢慢懂得了整个项目架构、软件工程的重要性,明明是两个非常简单的Vue小组件,组合起来之后却因为A出现了一个小Bug修改之后B又不能工作了,B再修改好之后A又出现了一个Bug,改BUG之路漫漫,看来还是解耦工作

2020-12-20 21:10:50 954 1

原创 SpringBoot-WebSocket 使用SimpMessagingTemplate发送后前端无法监听到消息

最近聊天室项目遇到了这样一个操蛋的问题:前端监听subscribe后端的topicHome和topicChat两个接口,但永远只有topicChat接口有返回。前后端排除问题一个多小时定位到了后端出现的问题:原先后端webSocket配置的Broker如下 @Override public void configureMessageBroker(MessageBrokerRegistry registry) { //表示客户端订阅地址的前缀信息,也就是客户端接收服务端消息的

2020-12-20 15:07:22 3327 2

原创 Vue聊天室中WebSocket的封装实现不同页面接收相同消息后进行的不同操作

首先简单介绍下,在这个项目中拥有home和chat两个页面(chat是home的嵌套路由),home处理消息推送后更新房间信息和好友请求信息,chat处理消息推送后更新的是房间中的聊天信息对npm库的封装:原先做这个项目时,webSocket连接一直都是是在home页面连接一次,在chat页面连接一次,也就是说一个账号需要连接两个socket连接。一直觉得这种方法不够好,由于chat页面是home页面的子路由,之前想的办法一直是在父子路由之间传值,将stompClient由home路由传递给chat子路

2020-12-19 16:27:19 2041 1

原创 Springboot+Vue实现在线聊天室项目-主页面及聊天框页面webSocket的消息推送

Springboot+Vue实现在线聊天室项目springBoot整体架构# Springboot+Vue实现在线聊天室项目目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)通过socketJs 和 stomp连接webSocketnpm 下载npm install socketjs-clientnpm install stompjs引入i

2020-12-19 16:20:32 1685 1

原创 Springboot+Vue实现在线聊天室项目-后端整体架构及总结反思

Springboot+Vue实现在线聊天室项目目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)后端架构JavaBeanEvent:session监听器所用(已废弃)Infor:用户好友请求消息,包含用户信息和阅读信息(是否已阅读,已拒绝/已同意)Message:用户聊天消息,包含用户信息和聊天信息(时间、内容)MyFriend和MyRoom

2020-12-19 14:56:26 1286 2

原创 Springboot+Vue实现在线聊天室项目-聊天室获取房间信息、分页获取消息的接口

Springboot+Vue实现在线聊天室项目该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)获取房间信息在前端Home页调用,获取房间内消息在前端Home子路由chat页调用。获取房间信息Controller @ResponseBody @RequestMapping("/getRooms") public Result ge

2020-12-19 14:36:56 585 1

原创 Springboot+Vue实现在线聊天室项目-推送好友请求消息接口

Springboot+Vue实现在线聊天室项目该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)发送好友请求Controller配置 @ResponseBody @RequestMapping({"/sendFriendRequest"}) public Result sendFriendRequest(int toUid) {

2020-12-19 14:31:06 680 2

原创 Springboot+Vue实现在线聊天室项目-webSocket实现的消息转发

Springboot+Vue实现在线聊天室项目该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)消息推送的实现配置Controller类@MessageMapping("/test") public void test(WebSocketMessage message){ message.setTimeStamp(new Date

2020-12-19 14:24:03 832 2

原创 Springboot+Vue实现在线聊天室项目-集成spring-WebSocket配置

Springboot+Vue实现在线聊天室项目该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)pom导入webSocket <dependency> <groupId>javax.websocket</groupId> <artifactId>j

2020-12-18 23:18:48 1702 3

原创 Springboot+Vue实现在线聊天室项目-修改头像、添加好友接口的实现

Springboot+Vue实现在线聊天室项目该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)修改头像接口Controller @ResponseBody @RequestMapping({"/updateMyImg"}) public Result updateMyImg(String img) { return

2020-12-18 22:56:08 1154 2

原创 Springboot+Vue实现在线聊天室项目-登录、注册接口的实现

Springboot+Vue实现在线聊天室项目目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)登录接口由security完成,详见注册接口后续待添加…...

2020-12-18 22:42:04 428 1

原创 Springboot+Vue实现在线聊天室项目-集成springSecurity配置实现登录的权限控制

Springboot+Vue实现在线聊天室项目目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)pom导入springSecurity <dependency> <groupId>org.springframework.boot</groupId> &lt

2020-12-18 22:37:50 685 2

原创 Springboot+Vue实现在线聊天室项目-springBoot整体架构

Springboot+Vue实现在线聊天室项目springBoot整体架构### 目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出。(本文章写于项目整体完成上线之后,所以一些细节并未写出)SpringBoot版本: 2.4.0集成Spring + springMVC + mybatis + webSocket + springSecuritypom文件:<?xml version="1.0" e

2020-12-18 22:19:51 2022 1

原创 Springboot+Vue实现在线聊天室项目-目录

Springboot+Vue实现在线聊天室项目目录该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出后端(springBoot集成spring+mybatis+springMVC+springSecurity+spring-web-Socket)1.springBoot整体架构2.集成springSecurity配置实现登录的权限控制4.登录、注册接口的实现5.修改头像、添加好友接口的实现6.集成spri

2020-12-18 22:05:16 1947 1

原创 利用反射写一个简单的注解实现的Ioc控制反转||01.Component及依赖注入的简单实现

最近决定自己手写出一个简单的后端的框架从而做到熟悉java基础特性以及熟悉后端框架,由于没有阅读过ssm等框架的源码,写出的东西可能会有一些不足之处,也希望大佬们能够不吝指导~~1.首先创建需要的包、类其中annotation包中包含一些基础的注解,这里直接用的Spring中的注解名称,就不作详细解释了。其中只有Value注解中有值,其他两个注解都是无值的注解Annotation类中对所有...

2020-04-22 11:10:57 374

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除