npm 包 colyseus-monitor 使用教程

阅读时长 14 分钟读完

介绍

Colyseus 是一个 Node.js 的多人游戏服务器框架,你可以通过它轻松地创建多人游戏,而 colyseus-monitor 则是一个非常实用的监控工具,它可以帮助你实时监控服务器的状态。

在这篇文章中,我将向大家介绍如何在自己的 Node.js 项目中使用 colyseus-monitor 包,并通过详细的使用示例帮助大家快速上手。

安装

在使用 colyseus-monitor 之前,你需要首先在自己的项目中安装该包。可以使用 npm 或 yarn 进行安装。

使用

使用 colyseus-monitor 的步骤非常简单。跟其他 Node.js 模块类似,我们需要在应用程序中引入该模块,创建一个监控服务器,然后启动该服务器。

在下面的示例中,我们将展示如何创建一个基本的 colyseus-monitor 服务器:

-- -------------------- ---- -------
----- - ------- - - ----------------------------
----- ---- - ----------------

----- ---- - ---------------- -- -----

-- ---- ---- ---
----- ------ - --------------------

-- -----
----------------

-- -----
------------------- -- -- -
  ---------------------- -- ---- ---------
---

你可以将以上的代码复制到你的项目中,然后在命令行中运行 node index.js 命令来启动应用程序。

当应用程序成功启动后,你可以在浏览器中访问 http://localhost:8080/colyseus 来打开监控页面。

配置

当你开始使用 colyseus-monitor 时,可以通过配置选项来对其进行设置,以使其适应你的项目需求。

以下是 colyseus-monitor 支持的配置选项:

选项 描述
hostname colyseus-monitor 监听的主机名。默认值是 0.0.0.0
port colyseus-monitor 监听的端口。默认值是 2657
express 传入一个 Express 应用程序实例,使 colyseus-monitor 能够与你的项目协同工作。
ws WebSocket 选项对象。默认值如下:{ path: '/colyseus' }
interval 数据定时推更新时间间隔,单位毫秒。默认值是 1000ms。
pingInterval 数据推送间隔,如果您以某些方式使用 setInterval 定期推数据给客户端,则应该将此时间设置为'pingInterval'+10ms。这是仅在没有客户端连接时进行的推荐推行动。默认值为 5000ms。推送数据的 API 详情可见下文。
auth {id: string; password: string} = {id: "", password: ""}鉴权相关,配合中间件 colyseusMonitorAuth() 或者自定义来进行鉴权
label 必传。默认为空。这是显示在 colyseus-monitor 页面上的房间标签,所以您可以详细声明一下您的游戏。
transport 数据传输类型,可以是 websocket 和 http 两种。默认为 websocket。
metadata 任何你想在监视器界面中显示的数据对象。这在展示服务器状态的已解锁物品和可用游戏模式方面特别有用,MD 的使用方式是 key-value,这里我们通过如下方式设置:{ gameModes: getPurchasedGameModes(),}。这样会使 colyseus-monitor 显示一个名为 'gameModes' 的标签,并在括号中包含字典中所有的键值对(在本例中为 getPurchasedGameModes() 返回的所有键值对)。
presence “presence”分成2个部分,首先是通过存储值在 redis 密钥中确定当地实例(这将启用colyseus的presenceMiddleware),第二个是将本地存在的玩家状态突出显示出来,使存在的活动用户与其他玩家易于区分。默认为 false。

例如,以下是使用 auth 和 metadata 配置的示例:

-- -------------------- ---- -------
----- - ------- - - ----------------------------
----- ---- - ----------------

----- ---- - ---------------- -- -----

-- ---- ---- ---
----- ------ - --------------------

-- -----
--------------- -
  ----- - --- ---------- --------- --------------- -- -- ----------
  --------- - ---------- ----------- -------- ----- --------- --------------
---

-- -----
------------------- -- -- -
  ---------------------- -- ---- ---------
---

API

在上文例子中我们使用了 monitor() 方法来创建一个 colyseus-monitor 服务器,此处详细介绍其 API。

monitor(server[, options])

创建一个新的监视器实例。以下是该方法支持的选项:

  • hostname - 监听主机名。默认为 0.0.0.0
  • port - 监听端口。默认为 2657
  • pingInterval - 数据推送间隔。默认为 5000ms。
  • ws - WebSocket 套接字选项。默认为 { path: '/colyseus' }
  • label - 显示在监视器页面上的标签。
  • transport - 数据传输类型。默认为 'websocket'。
  • metadata - 任何你可以在监视器界面上显示的数据对象。
  • interval - 数据定时推送更新时间间隔,单位毫秒。默认为1000ms。
  • presence - presence 分成 2 个部分,第一部分通过存储值在 Redis 密钥中确定当地实例(这将启用 colyseus 的 presenceMiddleware),第二个是将本地存在的玩家状态突出显示出来,使存在的活动用户与其他玩家易于区分。默认为 false。
  • auth - 鉴权信息。通过插入中间件 colyseusMonitorAuth() 或者自定义鉴权(比如token校验)来完成。auth 默认为 {id: '', password: ''}。

monitor.handleUpgrade(request, socket, head)

在 WebSocket 升级请求时绑定智能开关。

有了这个绑定,你就可以创建一个 Colyseus.Monitor 实例,并将其绑定到客户端的 WebSocket 连接上。

monitor.publish(data)

当使用 HTTP 传输机制时,可以定期地将监视器数据发布给所有客户端。在下面的示例中,我们将监视器数据每隔 10 秒钟推送一次。

示例代码

下面提供一个完整的使用示例,仅供参考。

-- -------------------- ---- -------
----- - ------- - - ----------------------------
----- ---- - ----------------
----- ------- - -------------------
----- - ------ - - --------------------
----- ------ - -----------------------

----- ---- - ---------------- -- -----
----- --- - ----------

-- ---- ---- ---
----- ------ - -----------------------

-- -- -------- ---
----- ---------- - --- --------
  ------- -------
  -------- ---
---

-- ----
---------------------------- --------

-- -----
--------------- -
  ------ --- ---- -------- -- -------------
  --------- -              -- ------
    ---------- ----------- --------
    ----- --------- -------------
  --
  ----- - --- ------ --------- ----- -- -- ------
  --------- -----         -- -- -------- --
  --------- ----          -- ------------
---

-- -----
------------------- -- -- -
  ---------------------- -- ---- ---------
---

这段代码将启动一个 HTTP 服务器,并创建一个 colyseus 服务器,在这个 colyseus 服务器中注册 MyRoom 房间。它还创建了 colyseus-monitor 服务器,并将它绑定到 http 服务器上,然后启动了整个应用程序。

总结

在这篇文章中,我们详细介绍了 npm 包 colyseus-monitor 的使用方法,既然您能够仔细阅读到这里,那么希望它对您在开发游戏时的监控有所帮助。

如果您需要更深入的探索,可以去 官方网站 获取更多信息。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055eae81e8991b448dc354

纠错
反馈