服务器开发与部署 - xuebaodev/wawaji GitHub Wiki

在视频娃娃机项目中,服务器需要区分为两种类型:

  • 应用服务器 负责接受玩家指令,维护玩家登录信息,娃娃机列表,娃娃机状态,抓取娃娃的历史记录 玩家积分金币管理 等等,这就是一个传统的类似网游服务器一样的应用服务器,只不过没有细分架构成数据库服务器、世界服务器、大区服务器、登录服务器等等多个服务器分工合作的方式,因为不需要。
  • 流媒体服务器。 负责接受来自摄像头的视频流,并转发给每个拉取视频流的玩家。当然,私有协议的流媒体不一定是视频的形式。总之,这个是流量的大头。你可以选择自己搭建流媒体服务器。比如使用这里的https://github.com/ossrs/srs/wiki/v1_CN_SampleRTMP。 SRS开源流媒体服务器。也可以和腾讯、阿里之类的流媒体服务器提供商直接购买。之后他们会告诉你怎么去弄这个推流地址。

开发应用服务器

应用服务器的职责主要包括

  • 玩家登录验证、玩家信息管理包含中奖记录 收货地址 玩游戏记录 积分与金币变化,充值记录。
  • 娃娃机管理。 状态维护。
  • 游戏逻辑处理。 包含娃娃机房间人数 ,进出通知,娃娃状态广播,预约结果,玩游戏时的操作转发,弹幕转发,聊天转发等等。

您可以根据自己所处团队的熟悉语言进行应用服务器的开发。部署也是根据该语言所对应的平台来部署。 以下针对雪暴的简单服务器功能和部署方式进行介绍。方便您继续开发及扩展。

SimpleServer-c语言版编译与部署

  • 仅支持一台娃娃机,一个客户端。除了心跳直接转发所有操作。不进行任何处理。它可以简单方便的一对一功能测试,不支持多个娃娃机同时连,没有房间列表概念。
  • 部署 该版本基于linux-c。因此您需要一个linuxmint发行版或者ubuntu发行版。安装好g++工具然后,打开终端
g++ -std=c++11 -pthread ./SimpleServer.c -o SimpleServer

运行
./SimpleServer

SimpleServer-java语言版编译与部署

  • 支持多个玩家,多台娃娃机。但同一时间,一台娃娃机只能由一个玩家操控。

  • 简单登录、进出房间事件。

  • 配置协议响应。 响应读取设置配置,升级功能。

  • 安卓版应用服务器特有的状态通知,比如推流状态等等。仅作参考。可自行修改rtmpPush和服务器源码扩展更多功能。

  • 部署 安装JDK。设置环境变量。然后安装Eclipse,导入工程,点击build all。然后点击运行即可。 服务器会监听7770,娃娃机的串口模块,安卓板模块应该连接到这个端口。 监听7771端口负责处理来自玩家的消息。手机玩家客户端SimpleClient.apk应该连接到这个端口。

配置服务[7776]-可选功能。娃娃机配置服务器连接到此端口。 配置客户端[7778]-可选功能,配置工具连接到此端口实现娃娃机远程配置。

流媒体服务器

您可以选择开源的流媒体服务器如 easydarwin 或者srs架设你的流媒体服务器