游戏服务器框架之跨服(三)
跨服回调
回调设计是跨服基础的一个设计难点。类似于JavaScript的Ajax请求,我们希望在向跨服发送请求,拿到服务器的返回结果后能够执行一些回调动作。
如果使用Rpc框架,那么回调API看起来就是这样子的:
public Message sendData(Message request) {}
不管请求方是否需要回调,都是需要通过请求方发送一条消息到服务接收方。为了能重用协议,我们就只定义一条消息类型用来处理需要回调的业务。那么问题来了,需要回调的跨服请求可能很多,怎么来兼容多种情况呢。
我们可以直接使用子类型来定义种类,而把请求的参数统一封装成一个map参数。请求与响应协议体如下:
/*** 跨服回调请求方*/
@MessageMeta(module = Modules.CROSS, cmd = CrossCommands.G2F_CALL_BACK)
public class G2FCallBack extends Message {private int index;/*** 子类型 {@link com.kingston.jforgame.server.cross.demo.CrossDemoGameService}*/private int command;private transient Map<String, String> params = new HashMap<>();private String data;/*** 响应类型:{@link CallbackKinds#RPC_ASYNC}*/private int rpc;pub
游戏服务器框架之跨服(三)相关推荐
- 游戏服务器框架之跨服(二)
rpc框架的优势 直接使用rpc框架来搭建跨服,我们就无需考虑跨服链路的建立,通信数据编解码,方法回调等底层问题. 手写跨服通信 rpc的本质其实就是跨服通信,底层是使用socket来进行数据传输的. ...
- 游戏服务器框架之跨服(一)
如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外).跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量,避免单服日活跃低 ...
- 开源游戏服务器框架NoahGameFrame(NF)客户端环境搭建(三)
一.下载NoahGameFrame框架的客户端 1.进入到开源游戏服务器框架NoahGameFrame的客户端NFUnitySDK在GitHub官方界面NFUnitySDK 2.复制要Checkout ...
- 包含对象名字的游戏id_教你从头写游戏服务器框架(三)
关于作者:韩伟,腾讯互娱高级工程师,目前在Next产品中心研发创新类型游戏. 本文为系列文章的第 3篇 第一篇:教你从头写游戏服务器框架(1) 第二篇:教你从头写游戏服务器框架(2) 协 程 ...
- 游戏服务器框架概括分析
游戏服务器框架概括分析 关注公众号 风色年代(itfantasycc) 500G游戏开发资料随便拿! 这篇blog题目涉及的范围真大!以至于在这里需要先写一篇前言把范围缩小.选择写这样一个系列的文章, ...
- 高性能分布式游戏服务器框架
欢迎大家Fork mqant开源框架 为什么决定要重新造一个轮子? 目前网上优秀的开源游戏服务器框架也不少(当然与web框架比起来就少太多了),但总结起来都各有各的优缺点,下面列出我在选型过程中的一些 ...
- golang Leaf 游戏服务器框架简介
Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的 ...
- python游戏服务器框架_有那些比较成熟的开源游戏服务器引擎/框架(编程语言不限)?...
更新,没有看到服务器(逃. 下面仅为游戏引擎和框架推荐,需要的小伙伴简单看一下,正确的答案努力撰写中. 从角色扮演游戏到即时策略游戏,从冒险解谜游戏到动作射击游戏,甚至是只有一兆大小的迷你游戏,都有起 ...
- 教你从头写游戏服务器框架
本文由云+社区发表 作者:韩伟 前言 大概已经有差不多一年没写技术文章了,原因是今年投入了一些具体游戏项目的开发.这些新的游戏项目,比较接近独立游戏的开发方式.我觉得公司的"祖传" ...
最新文章
- php汽车找车位,车停在哪最省心?小编奉上找车位小指南
- 【9704】【9109】麦森数
- java mqtt客户端_基于 t-io 实现一个 mqtt5 协议之 mica-mqtt
- 【C++基础】模板参数与模板继承
- 【spider】selenium模拟点击斗鱼示例
- 云+X案例展 | 民生类:纷享销客助力沃得农机构筑智能化、信息化之路
- 大数据技术是“地球的神经系统”
- Django Model View Template 之间的简单交互 (二)
- 通过配置文件连接mysql_利用配置文件连接数据库
- Windows API 逐个逐个学(3)----Windows系统基本服务API GetSystemDirectory
- JZ1-二维数组中的查找
- 桌面被恶意软件放上几个ie图标删除不了怎么办?
- 公安“智慧型”监所解决方案
- 计算机毕业设计之社区自行车租赁管理系统
- 年终总结系列1:基于IFRS9的预期损失准备金
- python pip安装第三方库出现error: option --single-version-externally-managed not recognized
- AntV-G6实现微服务拓扑图
- 支付宝信用卡还款即将收费,3个方法免手续费!
- emacs下安装eaf
- 返回const指针与返回const引用区别