- 博客(162)
- 资源 (1)
- 收藏
- 关注
原创 基于CSP模型实现的游戏排行榜
游戏排行榜作为游戏生态中的核心功能,不仅展示玩家实力,还促进社交互动和用户留存。然而,其技术实现面临并发访问控制和高效数据结构设计两大挑战。Java和Go分别通过ConcurrentSkipListMap和CSP模型(基于Channel的并发设计)实现排行榜容器,前者依赖共享内存和锁机制,后者通过消息传递避免锁竞争,但可能在高并发场景下成为性能瓶颈。
2025-05-24 16:49:14
679
原创 游戏服务器之聊天频道设计
本文设计了一套简单通用的网络游戏聊天框架,旨在通过统一的API处理所有聊天频道。框架支持私聊、世界、公会、队伍等多种聊天频道,并考虑了消息的存储与推送机制。
2025-05-18 18:55:48
742
原创 Go基于plugin的热更新初体验
对于一个部署在生产环境的项目来说,我们希望当代码出现bug的时候,可以不用重启进程。使用java可以非常方便的进行代码热更新。但,如果采用go呢?
2025-05-10 10:39:14
887
原创 使用MVC模式开发cocos游戏功能
MVC是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),其核心思想是将数据处理、用户界面展示和业务逻辑分离,本文演示cocos如何使用该模式来开发业务功能。
2025-04-12 16:04:33
909
原创 cocos与游戏服务器如何通信
在 Cocos Creator 中与游戏服务器进行通信,常见的方式有 WebSocket、HTTP/HTTPS,本文主要讲述如何使用websocket方式与服务器进行通信。通过实际代码阐释请求-响应模式,服务器推送模式的逻辑实现。
2025-03-29 12:15:00
664
原创 分布服注册socket节点
聊天客户端通过http进行账号密码验证之后,需要绑定到某一个socket节点,之后,大部分聊天消息+推送消息可以通过该socket链接实时推送给客户端。本文讲述如何将socket节点注册到nacos服务,以便于聊天客户端通过http接口获得socket连接信息。
2025-03-08 18:45:00
436
原创 聊天服务器分布式改造
目前的聊天室是单节点的,无论是http接口还是socket接口都在同一个进程,无法承受太多人同时在线,容灾性也非常差。本文讲述如何对该聊天室进行分布式改造的目标和实现方式。
2025-03-08 01:00:00
2026
原创 游戏服务器任务系统设计
游戏任务系统是游戏中引导玩家进行游戏、增加游戏趣味性和玩家粘性的重要组成部分,本文介绍如何设计一套通用易于拓展的任务系统,兼容主线任务,每日任务以及其他类型。
2025-02-22 10:45:00
613
原创 websocket实现多人协作
多人协作是指两个或以上的个体共同参与并完成某项任务或项目。在技术上,可以使用websocket来提高开发与通信效率。本文介绍如何使用springboot的websocket实现多人协作通信,特别地,当服务器采用多节点部署,如何保证所有客户端都能接收到广播消息。
2025-02-16 14:30:00
1011
原创 使用jforgame快速部署游戏服务器
jforgame,是一个用java编写的轻量级高性能手游服务端框架。本文介绍如何使用该框架快速一个游戏服务器工程,即使是刚接触游戏开发的人员,也可以快速上手。
2025-02-15 12:15:00
1081
原创 go读取excel游戏配置
游戏服务器,配置数据一般采用csv/excel来作为载体,这种方式,策划同学配置方便,服务器解析也方便。本文讲述如何使用xcel配置格式来加载策划配置。
2025-01-19 16:30:00
668
原创 聊天客户端本地数据库
在使用微信这一类聊天软件,如果客户端选择桌面版或者移动版,是可以访问之前的本地记录的。本文介绍如何使用嵌入式数据库使用这一目标。
2024-12-21 11:39:57
1087
2
原创 异步持久化策略对比
游戏服务器一般采用异步持久化方案,对玩家的数据保存作异步处理,减轻频繁读写数据库的压力。本文详细阐述不同的异步策略,并给予代码演示。
2024-12-15 15:34:06
312
原创 聊天在线与离线传输文件
微信只支持一种文件发送方式,就是发送方把文件发到文件存储服务,然后接收方从文件服务器进行下载。然而,在古老的QQ软件,是支持在线传输和离线传输(微信模式)。
2024-11-30 22:43:52
1056
原创 php日志系统
服务器日志是服务器运行过程中记录的各种信息的集合,它们对于系统管理员和开发人员来说具有重要的意义。例如, 调试,监控,行为分析等等。php自带一个log库,但不如第三方monolog功能齐全。本文通过monolog实现一个分类比较合理的日志工具。
2024-11-24 09:38:05
931
原创 聊天适配多种消息格式
即时聊天软件有非常多的聊天内容格式,比如常用的文本,表情,文件,语音,视频,位置等等。对于这么多种格式,软件是如何传输消息,保存消息,以及客户端展示的呢。本文将介绍聊天各种格式的综合处理。
2024-11-23 12:19:54
479
原创 php消息路由
web刚开始发展的时候,没有专门的前端工程师, web开发人员经常是服务端,客户端开发一把梭。那时候,不管是业务逻辑,还是界面交互,都喜欢把某个业务的前后端代码放在同一个文件。例如,jsp,asp,php均是这种模式。例如,下面的订单管理页面,主要负责订单的增删查改这种模式,虽然界面写起来可能不是很漂亮(毕竟术业有专攻),但开发效率还是非常高的。因为服务端客户端都是同一个开发,接口联调如丝般柔顺,减少了沟通的成本。
2024-11-17 11:37:57
682
原创 php开发小游戏缓存持久化方案
如今,微信小游戏,H5小游戏非常火爆,这种休闲小游戏大部分都非常轻量级。用MMORPG,SLG那种架构模式来开发这种游戏,无疑是大材小用。对于这类小游戏,PHP不失为一种高效的开发语言。在实际操作中,为了减少数据库压力,考虑增设redis作为缓存中间件。本文介绍php如何结合使用redis以及mysql。
2024-11-17 10:05:49
1238
原创 云对象存储进阶
云对象存储在web开发非常常见,本文讲述云对象存储比较高级的知识,包括sdk兼容策略,客户端临时上传路径,cdn加速访问,资源防盗等。
2024-10-26 16:43:22
1282
原创 Go基本数据结构
JDK提供了如此多的数据结果,程序员只需了解每种数据结果的特点,即可应付大部分日常开发。而Go以简洁著称,只提供数组、切片以及映射3种基本数据结构。
2024-10-07 22:16:50
1329
原创 springboot的调度服务与异步服务实操
调度任务、异步任务,均为软件应用的常见功能。本文讲述如何使用springboot创建调度线程池与异步执行线程池,重点演示线程池参数以及DIY线程池方法。
2024-10-01 22:49:58
1272
原创 go项目多环境配置
Spring Boot 提供了一套灵活且强大的机制来加载配置文件,使得开发者能够根据不同的环境和需求轻松地管理配置。本文演示如何使用Go来实现同样的目标,支持多环境配置。
2024-09-22 16:15:00
904
原创 Go语言设计的一些优点及缺陷
Go 语言的设计哲学强调简洁和效率。部分特性从代码工程最终的结果来看(静态),确实简洁舒服,然而,从开发过程(动态)来看,难道不会加大开发成本吗?本文尝试列举一些Go语言的优点和缺点,仅代表个人意见。
2024-09-22 10:45:00
1099
原创 Go缓存系统
缓存用于提高数据访问速度和系统性能。它通过在快速的存储介质中保存数据的副本,使得数据可以被更快地检索。本文尝试使用bigcache以及原生map,实现一套高效的缓存系统。
2024-09-16 18:34:32
1114
原创 Go搭建TcpSocket服务器
不可否认,go在网络服务开发有强大的优势。net库是一个功能强大的网络编程库,它提供了构建TCP、UDP和HTTP服务器和客户端所需的所有基础工具。java创建tcp服务器,需要引入netty,或者mina,学习成本比较大。而go只需要寥寥几十行代码,也可实现一个高性能的网络服务器。
2024-09-16 12:49:58
1187
原创 Go日志系统
服务器日志是服务器运行过程中记录的各种信息的集合,它们对于系统管理员和开发人员来说具有重要的意义。例如, 调试,监控,行为分析等等。本文介绍如何使用logrus库创建系统以及运营两大类日志工具。
2024-09-08 20:15:00
1247
原创 初识云函数
云函数(SCF)是一种无服务器(Serverless)计算服务,它允许开发者在不管理服务器的情况下运行代码。本文使用腾讯云演示云函数与层的使用,同时记录选择java构建层问题的疑难杂症。
2024-09-08 14:30:00
1843
原创 优雅的创建对象——类Builder模式
在软件工程中,建造者模式(Builder Pattern)是一种设计模式,用于构建复杂对象。这种模式将对象的构建过程与对象的表示分离,使得同样的构建过程可以创建不同的表示。本文分别对Java与Go如何构造复杂对象
2024-09-01 15:30:00
465
2
原创 Go异常处理机制
Go语言的异常处理机制一直是社区讨论和争议的焦点。Go通过返回错误值来处理异常情况,而不是使用传统的 try-catch-finally 异常处理模型。本文主要讨论java与go两种不同的异常处理机制。
2024-09-01 10:00:00
1943
原创 游戏服务器使用Validation以及全局异常拦截器
Spring框架对Java Bean Validation API提供了很好的支持,允许你很容易地在Spring应用程序中进行请求消息验证。通过Validation结合全局异常拦截器,可以非常优雅实现对请求参数进行验证,并对异常进行二次转义,使之符合客户端响应标准。游戏开发亦可借鉴web开发的思路,引入基于注解的消息验证,并通过全局异常拦截器进行拦截。
2024-08-11 18:10:06
374
原创 spring使用validation参数及全局异常检测
Spring框架对Java Bean Validation API提供了很好的支持,允许你很容易地在Spring应用程序中进行数据验证。通过Validation结合全局异常拦截器,可以非常优雅实现对请求参数进行验证,并对异常进行二次转义,使之符合客户端响应标准。
2024-08-11 17:09:43
1277
原创 docker搭建mongo分片集群
MongoDB分片集,可以实现数据库的水平拓展,提供更大的存储容量和处理能力。分片集还提供了高可用性和冗余备份,以及更好的负载均衡和查询性能。本文演示如何通过docker部署分片集。
2024-06-23 11:55:09
1376
2
原创 docker搭建mongo副本集
ongoDB集群有4种类型,分别是主从复制、副本集、分片集群和混合集群。副本集是最基础的集群模式。本文演示如何通过docker部署mongo副本集。
2024-06-23 11:44:04
2024
1
原创 游戏缓存与异步持久化的完美邂逅
游戏服务器,需要频繁的读取玩家数据,同时也需求频发修改玩家数据,并持久化到数据库。为了提高游戏服务器的性能,我们应该怎么处理呢?本文详细介绍缓存与异步持久化机制的原理,以及实用方法。
2024-06-15 22:43:13
1358
原创 使用docker构建java应用
Docker是一个开源的容器化平台,可以帮助开发人员将应用程序及其依赖项打包成一个可移植的容器。本文演示如何利用docker构建java应用。
2024-06-15 20:57:45
1544
原创 Python爬虫入门与登录验证自动化思路
Python爬虫是通过编写程序自动访问网页并提取信息的技术,常用于数据抓取、信息分析和自动化测试。然而,爬虫开发中最具挑战性的是处理网站的登录验证,尤其是图片验证码。为了应对这一问题,开发者可以采用半自动化或全自动化的方式,利用打码平台自动识别验证码,并通过Selenium工具模拟用户操作。
2024-06-09 17:42:29
3282
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人