服务端开发笔记三:pemelo开发过程中遇到的问题

一 登录顶号

问题:

首先需要弄明白的是,一个客户端只有一个pomelo实例。

当用户登录之后,不退出,重启客户端。

服务器检测到玩家已经登录,会将之前的登录踢下线,客户端会触发disconnect事件,在disconnect中断开pomelo链接。

这样导致当前的链接也被断掉了。

解决方案:

目前处理方式是在disconnect中不断开链接。但这样处理有个问题,当服务器链接不上时,会有一个报错。

原因目前还在查找,找到了再来更新,有路过的小伙伴儿有其他的解决方案也欢迎留言讨论。

二 数据库触发器

问题:

数据库中有两种表User和Level,添加了一个触发器,当在User表中插入数据时,

在Level表中也生成一条记录,保存玩家初始的关卡数据。

这种的设定看上去合符逻辑,没有问题,但是运行的时候问题出来了。

当玩家创建完角色之后,会马上请求返回玩家的信息,这是就会去查询玩家的Level表。

这时候触发器有可能会没有完成数据库中Level表的操作,导致读出来的数据为空。

解决方案:

由于触发器操作在程序中没办法控制,所以只好抛弃它了。

在User表中插入数据的之后,继续在Level表中增加一条记录,然后在返回数据。

三 全服排行

问题:

要全服排行榜,要拿到所有服上玩家的数据做比较。由于分布式架构,玩家的数据库之中,是拿不到彼此的数据。

解决方案:

拿出一个单独的服务器来生成玩家的UID,使得所有的玩家UID都不重复。

然后将需要比较的玩家数据比如说战力或者等级,也放到对应的UID记录中。

这样,每次排行只需要到排行服务器来查找就可以了。

时间: 2024-08-10 02:45:46

服务端开发笔记三:pemelo开发过程中遇到的问题的相关文章

服务端开发笔记二:基于pomelo的分布式手游架构

经过了一个周的时间,新项目的基本结构已经大体确定,拿来给大家分享. 一 基础概念 在说明手游服务器架构之前,一下几点须知. 1 我们的服务器集群分为前端服务器和后端服务器. 前端服务器:负责接收前端请求,实际上只有两个gate和connector: 后端服务器:负责后端服务器相互调用,如auth,area: 虽然在我们写路由的时间直接写的是area中handler下文件中的方法, 但是这是通过connector间接调用的,不要认为area是前端服务器. 2 对于每个单独的服务器,一般由三个可选的

maven版axis2调用cxf服务端开发客户端(三)

一.新建一个maven项目 二.pom.xml引入axis2依赖 <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.apache.axis2</

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之开发工具箱 现代Java服务端开发核心技术 2.1 开发工具概述 俗话说,工欲善其事必先利其器,掌握一些日常开中常用的工具软件能够大大提开发效率,工具本身的目的也是解放生产力.在安装各种软件时注意如果没有特殊需要不必使用最新版本,尤其是操作系统,例如当前(2018/10/12)最新版的macOS是10.14,但是运行在macOS之上的其他应用软件可能还没有及时做兼容新系统的版本,可能在系统升级之后无法正常使用,因此推荐在新系统正式推出半年后再升级最为稳妥. 而且软

如何进行SuperMap iServer服务端开发

有时候在进行地图应用开发时,可能单纯的客户端无法满足要求(如功能和性能等因素),这时就需要进行iServer的服务端开发.SuperMap iServer 6R/7c的服务端开发步骤如下: 一.在Eclipse中新建一个Dynamic Web Project 此过程截图略去 二.引用iServer所需的各类jar包 经测试后发现,必须引用iServer/WEB-INF/lib下的所有jar包,否则运行时会出现一些奇怪的错误.这些jar包所在的位置为[iServer安装目录]\webapps\is

GIT Windows服务端搭建笔记

GIT Windows服务端搭建笔记 所需软件: GIT服务端: Bonobo Git Server,下载最新版 https://bonobogitserver.com/ 一:配置服务端(基于Windows10+Bonobo Git Server6.3) 打开IIS功能.控制面板->程序->启用或关闭Windows功能,勾选Internet Information Services的选项. 下载好Bonobo Git Server,是一个zip压缩包,是用ASP.NET  MVC开发的网站.

在线教学、视频会议软件 Webus Fox(2) 服务端开发手册

上次在<在线教学.视频会议软件 Webus Fox(1)文本.语音.视频聊天及电子白板基本用法>里介绍了软件的基本用法.本文主要介绍服务器端如何配置.开发. 1配置 1.1 IIS配置 Fox支持最基本的.net Framework4.0和IIS6/IIS7. 在IIS7中,对应应用程序池,需要配置为经典模式,支持.net4.0 1.2 web.config配置 Fox服务器端是暂时是host在IIS上,将来将Host在Windows Service上.对于IIS的配置,web.config是

.NET服务端开发—多线程使用小结(多线程使用常识)

有一段时间没有更新博客了,最近半年都在着写书<.NET框架设计-大型企业级框架设计艺术>,很高兴这本书将于今年的10月份由图灵出版社出版,有关本书的具体介绍等书要出版的时候我在另写一篇文行做介绍.可以先透露一下,本书是博主多年来对应用框架学习的总结,里面包含了十几个重量级框架模式,这些模式都是我们目前所经常使用到的,对于学习框架和框架开发来说是很好的参考资料,大家敬请期待. 好了,进入文章主题. 最近几个月本人一直从事着SOA服务开发工作,简单点讲就是提供服务接口的:从提供前端接口WEBAPI

WCF服务端开发和客户端引用小结

1.服务端开发(包含寄宿) 1.1 WCF服务创建方式 创建一个WCF服务,总是会创建一个服务接口和一个服务接口实现.通常根据服务宿主的不同,有两种创建方式. (1)创建WCF应用程序 通过创建WCF服务应用程序,可生成一个带.svc后缀名的文件.该文件与webform中的aspx文件类似,有后置代码,这些后置代码是服务接口的实现.这种方式创建的WCF服务都承载在IIS或WAS上. (2)创建WCF服务库 WCF服务库是一个类库,如前所述包含一个服务接口和服务实现,此种方式创建的WCF服务可根据

服务端开发之下载图片等文件

服务端开发中,当客户端需要加载服务端发送的图片文件时,需要服务端提供一个下载图片的程序. 下载图片工具类的代码如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class DownloadImageUtil { public stat