你可以用二进制或者 Docker 来安装 Nakama。如果你计划在开发或部署中使用 Docker,请查看 Docker 快速入门。
下载或访问服务器后,您可以启动它。您必须首先启动数据库服务器。
启动数据库服务器
您可以使用以下命令启动数据库服务器:
代码语言:javascript复制cockroach start --background --insecure --store=path="./cdb-store1/"
这将在后台的 26257
端口上启动 CockroachDB,并将数据库的数据目录设置为 shell 环境当前工作目录下的文件夹“db-store1”。有关更多示例,请参阅数据库文档。
启动 Nakama
在启动服务器之前,必须设置数据库模式。模式定义绑定在服务器中,可以用下面的命令执行:
代码语言:javascript复制nakama migrate up
如果您已经将数据库配置为使用特定的连接设置运行,请查看如何配置 migrate 命令。
当命令运行时,您将看到将日志输出到 shell 控制台。
代码语言:javascript复制```
{"level":"info","ts":"<sometimestamp>","msg":"Database connection","db":"root@localhost:26257"}
{"level":"info","ts":"<sometimestamp>","msg":"Database information","version":"CockroachDB CCL v1.1.5"}
{"level":"info","ts":"<sometimestamp>","msg":"Using existing database","name":"nakama"}
{"level":"info","ts":"<sometimestamp>","msg":"Successfully applied migration","count":1}
```
日志表明运行了多少次迁移,以便随着服务器的发布将数据库中的模式定义更新到最新版本。每个新服务器版本只需要迁移服务器一次。__不__需要在每个服务器启动之前运行此命令。
现在可以启动服务器了。
代码语言:javascript复制# start the server and output logs to the terminal
nakama
从服务器输出的日志将告诉你:
- 启动服务器的哪个版本。
- 客户端可以访问服务器的 IP 地址和端口号。
"启动消息":服务器输出的一些第一条日志消息可能以 “WARNING” 开头。这些指示服务器以 API 密钥(keys)启动,API 密钥是默认值,在部署到生产环境之前必须进行更改。
配置部分涵盖了所有不同的服务器选项,可以在启动时进行调整以定制化服务器。下面介绍一些最常见的配置标志。
数据库连接
默认情况下,服务器将使用默认端口号在本地地址上连接到数据库。您可以配置自定义地址和数据库名称:
代码语言:javascript复制# migrate command
nakama migrate up --database.address "username@database-host:port/database-name"
# startup command
nakama --database.address "username@database-host:port/database-name"
如果你已经在安全模式下安装了 CockroachDB,你可以传递证书信息:
代码语言:javascript复制nakama --database.address "username@database-host:port/database-name?sslcert=path/to/cert.der&sslkey=path/to/somekey.key.pk8&sslmode=require"
服务器名称
服务器在每次启动时使用一个唯一的随机名称。当作为集群的一部分或在单个节点上运行多个实例时,这对于标识服务器非常重要。您可以将日志和其他输出的服务器名称设置为每次运行时相同。
代码语言:javascript复制nakama --name "nakama1"
数据目录
Nakama 的数据(data
)目录是 Nakama 存储各种工作文件的地方。这包括一个日志文件夹、Lua 模块文件夹等。默认情况下,数据(data
)目录在 shell 控制台的当前工作目录中创建。
日志
Nakama 将所有日志写入数据目录中的一个文件。日志文件名是服务器实例的名称。
默认情况下,Nakama 记录的消息级别为 “INFO”、“WARN” 和 “ERROR”。但是你可以改变它:
代码语言:javascript复制nakama --logger.level "debug"
Lua 模块
在启动时,服务器遍历以 “.lua” 结尾的所有文件的模块目录。然后,在将这些模块缓存为VM指令以供服务器运行之前,对它们进行解析和评估。您将在日志输出中看到服务器找到的模块列表。
模块的默认位置是数据目录下的 “modules” 文件夹(“./data/modules”)。你可以用你自己的 Lua 模块位置覆盖它。
代码语言:javascript复制nakama --runtime.path "path/to/modules"
启动/加入集群
"仅 Nakama Enterprise":下面的命令在 Nakama Enterprise 中使用。企业版为实时聊天、多人游戏、状态事件、通知、流和会话管理提供了多服务器扩展功能。您可以使用企业许可证在您的开发机器上本地启动集群。我们提供的托管云服务已经可以运行我们的企业版。
集群版本的 Nakama 服务器构建了流言(gossip)、节点感知(node awareness)、状态复制(state replication)和多节点消息路由(multi-node message routing)。它使用最先进的分布式系统特性来提供一个简单的扩展模型。
如果企业版服务器加入的实例已经知道某个集群,或者创建一个新集群,那么它将加入该集群。
代码语言:javascript复制nakama --name "nakama1"
您可以启动第二个节点并加入集群。
代码语言:javascript复制nakama --name "nakama2" --cluster.join "localhost:7352"
如果希望在同一台机器上运行这两个实例,还必须为每个服务器提供唯一的侦听端口。
代码语言:javascript复制# node 1
nakama --name "nakama1"
# node 2
nakama --name "nakama2" --cluster.join "localhost:7352" --socket.port 7360 --dashboard.port 7361 --cluster.gossip_bindport 7362 --cluster.rpc_port 7363
谢谢点赞支持???!
中文在线文档:
- https://nakama-docs.hacker-linner.com/,持续更新中……