组件分享之后端组件——用于社交和实时游戏和应用程序的分布式服务器nakama

组件分享之后端组件——用于社交和实时游戏和应用程序的分布式服务器nakama

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:nakama
  • 开源协议:Apache-2.0 License

内容

本节继续分享游戏相关的开发组件nakama,它是用于社交和实时游戏和应用程序的分布式服务器,其官方描述特征如下:

特征

  • 用户- 通过社交网络、电子邮件或设备 ID 注册/登录新用户。
  • 存储- 将用户记录、设置和其他对象存储在集合中。
  • 社交- 用户可以与朋友联系并加入群组。内置社交图,以查看如何连接用户。
  • 聊天- 用户之间的一对一、群组和全球聊天。保留聊天记录的消息。
  • 多人游戏- 实时或基于回合的主动和被动多人游戏。
  • 排行榜- 动态、季节性、获得顶级成员或用户周围的成员。有尽可能多的。
  • 锦标赛- 邀请玩家一起争夺奖品。将许多人联系在一起以创建联赛。
  • 派对- 将团队游戏添加到游戏中。用户可以组队并与党员进行交流。
  • 运行时代码- 使用用 Lua、TypeScript/JavaScript 或本机 Go 代码编写的自定义逻辑扩展服务器。
  • 媒人仪表板、指标等。

它提供了一个标准控制台,方便我们对其中的各项信息进行管理


image.png

安装使用也很简单,直接使用docker进行安装即可,

  1. 设置一个docker-compose 文件并将其放在项目的文件夹中。
    docker-compose-postgres.yml
version: '3'
services:
  postgres:
    container_name: postgres
    image: postgres:9.6-alpine
    environment:
      - POSTGRES_DB=nakama
      - POSTGRES_PASSWORD=localdb
    volumes:
      - data:/var/lib/postgresql/data
    expose:
      - "8080"
      - "5432"
    ports:
      - "5432:5432"
      - "8080:8080"
  nakama:
    container_name: nakama
    image: heroiclabs/nakama:3.9.0
    entrypoint:
      - "/bin/sh"
      - "-ecx"
      - >
        /nakama/nakama migrate up --database.address postgres:localdb@postgres:5432/nakama &&
        exec /nakama/nakama --name nakama1 --database.address postgres:localdb@postgres:5432/nakama --logger.level DEBUG --session.token_expiry_sec 7200        
    restart: always
    links:
      - "postgres:db"
    depends_on:
      - postgres
    volumes:
      - ./:/nakama/data
    expose:
      - "7349"
      - "7350"
      - "7351"
    ports:
      - "7349:7349"
      - "7350:7350"
      - "7351:7351"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7350/"]
      interval: 10s
      timeout: 5s
      retries: 5
volumes:
  data:
  1. 运行docker-compose -f ./docker-compose-postgres.yml up以下载容器映像并运行服务器。更多使用方式可以参考README
本文声明:

88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

你可能感兴趣的:(组件分享之后端组件——用于社交和实时游戏和应用程序的分布式服务器nakama)