mqant

mqant提供游戏服务框架功能,如果你需要开发游戏就可以使用这款框架,该框架提供高并发、高能,保证游戏稳定,保证大量玩家进入游戏不会出现延迟卡顿,避免游戏遇到大量玩家同时进入的高峰的期导致崩溃,软件提供多进程的架构,通过分布式的方式调度能,降低在高峰期的压力,软件可以使用单台游戏,您也可以配置多进程服务方案游戏,适合游戏开发以及其他物联网行业使用,内置游戏房间模型、短信验证码、项目业务模块三种业务组件,提供tcp/ws、http、mqtt协议库、自定义协议机制、志库等核心组件!

相关推荐 软件介绍 下载地址
mqant官方版v1.4.9 mqa提供游戏服务框架功能,如果你需要开发游戏就可以使用这款框架,该框架提供高并发、高能,保证游戏稳定,保证大量玩家进入游戏不会出现延迟卡顿,避免游戏遇到大量玩家同时进入的高峰的期导致崩溃,软件提供多进程的架构,通过分布式的方式调度能,降低在高峰… 点击查看
组网客户端v1.0 组网客户端是一款帮助用户进行局域网的快速组建的一键快速组网工具,通过软件可以快速的安装虚拟网卡,根据IP来进行局域网的组建。在局域网中无论是进行文件访问还是游戏联机都会更加方便,还能进行互相通信。组网客户端软件介绍组网客户端是一款专业可的智能组网… 点击查看
Synology Assistantv6.1 SylgyAssisa(局域网安装辅助工具)是群晖sylgy的用于安装局域网的软件,通过SylgyAssisa能够对同一局域网下所有的Sylgy设备进行有效的管理和联机,通常购买了群晖设备的用户都需要有这款软件,有需要的可以下载使用。SylgyAssisa软件简… 点击查看

mqant软件功能

mqant

mqant是一款基于Golang语言的简洁,高效,高能的分布式微服务游戏框架,研发的初衷是要实现一款能支持高并发,高能,高实时的游戏框架,也希望mqant未来能够做即时通讯和物联网方面的应用

1、高能分布式

2、支持分布式服务注册发现,是一款功能完整的微服务框架

3、基于golang协程,开发过程全程做到无callback回调,代码可读更高

4、远程RPC使用nats作为通道

5、采用MQTT协议,无需再开发客户端底层库,直接套用已有的MQTT客户端代码库,可以支持IOS,Andid,websocket,PC等多平台通信

6、默认支持mqtt协议,同时也支持开发者自定义的粘包协议

mqant软件特色

核心RPC组件 – 它提供了用于服务发现,客户端负载平衡,编码,同步通信库。

http – 提供将HTTP请求路由到相应微服务的API。它充当单个入口点,可以用作反向代理或将HTTP请求转换为RPC。

tcp/websocket – 它提供了tcp和websocket两种客户端连接方式。并且默认内置了一个简单的mqtt协议,可以非常便捷的 提供长连接服务,快速搭建iot和网络游戏通信业务,同时也支持自定义通信协议插件。

mqant使用说明

mqant中的Gate模块相对来说非常重要,它支撑了与客户端的长连接通信

特:

1、支撑tcp,websocket通信方式

2、默认支撑MQTT协议

3、可自定义通信协议

使用Gate模块

gate模块包含的功能虽然多,但在实际开发时并不需要做过多的二次开发, 开发者只需要继承bate.Gate这个基模块即可,示例如下:

如何使用MQTT协议实现游戏路由

由于mqant目前主要用于游戏开发,因此mqant只使用了mqtt协议的一小部分功能。

mqant将收到topic解析出moduleType和handler用来定位到后端模块的对应处理方法,进行远程RPC调用。msgid作为客户端是否需要消息应答的的标记

如下图:

代码组织结构

首先我们重新组织了一下代码目录结构,新增了一个gate目录用来存放代码,bot目录用来存放访问的mqtt客户端代码

编写第一个

监听端口

最大同时任务数

为了防止客户端上次消息太过频繁,影响能,可以设置一个连接的最大同时任务书

默认值为20

如果连接最大任务数超过限制,会报 the work queue is full! 错误,此时你需要关注客户端消息频率以及后端任务响应耗时是否合理

网络读写缓存大小

缓存分为读缓存和写缓存,缓存大小设置需要根据具体业务场景而定,如缓存设置过大对内存消耗会比较多,如设置过小则可能导致读写卡顿,写数据时如缓存已满,则数据包会丢弃。

默认值2048

数据包最大长度

为防止解包错误或恶意攻击,导致内存溢出,需要限制每一个数据包的最大长度,超过最大长度限制的连接将被断开

默认值65535

客户端心跳间隔

默认值 time.Minute

建连超时时间

为防止连接到又为建立mqtt协议的异常连接,我们设置一个超时机制,客户端连接到以后需在设置时间内完成mqtt协议建立,否则连接将被断开

默认值 time.Second * 10

建立TLS加密通信

tcp和ws都可以建立安全的加密通信(tls)

默认 不安全通信

概述

mqant部署分为单机部署和分布式部署,通常情况下,项目的所有模块代码都被编译到一个可执行文件中。 在分布式部署时,我们通常想将模块跟后端服务模块分部署,即:

仅启用模块

后端仅启用后端模块

模块分组(PcessID)

模块分组便是为了实现上面的功能而设计的,如果要不同的模块分开部署可以按如下步骤作

在配置文件中将模块的PcessID分开

在启动应用进程时指定进程PcessID

单机部署

mqant默认的模块分组值约定为dlopment

在调试期间可以将所有模块的分组ID都设置为dlopment,这样一个进程就可以启用所有已实现的模块

模块PcessID设置

指定进程PcessID

编译

sh build.sh

运行

mqant-example -pid mypid

上一篇 2023-02-16
下一篇 2022-12-31

相关推荐

  • mqant

    mqant提供游戏服务框架功能,如果你需要开发游戏就可以使用这款框架,该框架提供高并发、高能,保证游戏稳定,保证大量玩家进入游戏不会出现延迟卡顿,避免游戏遇到大量玩家同时进入的...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)