# 未来bike-中控控制服务端 ## 项目简介 > 中控控制服务端:主要提供车(中控)对接的socket服务,包含登录,位置,控制车辆等接口。 > > 开发语言: php > > 技术方案:主要采用 Workerman3.0 基础框架,并基于GatewayWorker做的二次开发。 > > 依赖环境: > > - php7.2 (需要支持redis,mongodb扩展);需要放开PHP函数(pcntl_signal,shell_exec,pcntl_alarm,pcntl_signal_dispatch,pcntl_fork,pcntl_wait,pcntl_signal,putenv) > - redis-v5.0 > - mongdb-v4.0 > - mysql5.7 > - composer1.8.5 > > 服务对外开放端口:8282(tcp) > > *注意:数据库源文件和redis初始化脚本见后台端* ## 项目详情 ### 项目目录文件简介 > - Applications //应用目录 > - FileMonitor//代码热更新 > - Handlers // 代码块 > - BatteryHandler.php //电池电压转电量代码块 > - BikeStatusInfoSyncHandler.php//ridis车状态同步代码块 > - ConvertHandler.php//坐标位置计算代码块 > - Crc16Handler.php//crc16校检代码块 > - ExceptionTrait.php//异常处理代码块 > - MapHandler.php//地图坐标系转换代码块 > - ToolsHandler.php//自定义工具函数代码块 > - Maps > - BikeMap.php//车状态类型字段映射 > - BoxActiveUpEventMap.php//中控主动上报类型映射 > - CmdMap.php//中控控制指令 > - VideoMap.php//语音指令 > - WarningLogMap.php//警告类型(自定义) > - WarningMap.php//警告类型 > - Models > - AreaTraitModel.php//area操作模型 > - BatteryTraitModel.php//关于电池的操作(电压转电量) > - BikeTraitModel.php//bike模型 > - WarningLogTraitModel.php//报警模型 > - Servers > - BaseServer.php //服务基础类 > - BatteryServer.php//解析BMS报文 > - BikeControl.php//车辆控制类 > - BoxActiveReportingServer.php//解析中控主动上报事件报文 > - BoxPlayVoiceServer.php//解析播放语音报文 > - BoxSelectCmdServer.php//解析查询配置报文 > - BoxSettingServer.php//解析配置中控报文 > - BoxStatusChangeServer.php//解析中控状态改变报文 > - BoxSyncServer.php//解析中控同步报文 > - BoxUpgradeServer.php//解析中控升级报文 > - HeartBeatServer.php//解析心跳报文 > - LocationServer.php//解析位置报文 > - LoginServer.php//解析登录报文 > - MsgForwardServer.php//解析短信转发报文(暂时没有用) > - MsgUpServer,php//解析短信上报报文(暂时没有用) > - NewBikeReportingServer.php//(咱不是没有用) > - RemoteCmdServer.php//解析远程命令报文 > - ResponseServer.php//报文响应类 > - WarningServer.php//解析警告报文 > - YourApp > - Events.php//接受数据主入口 > - start_businessworker.php//处理数据服务 > - start_gateway.php//接受终端数据服务 > - start_register.php//内部服务通信服务 > - vendor//依赖包 > - composer.json//项目依赖包配置文件 > - config.php//配置文件 > - start.php//服务启动脚本(linux) ### 项目配置文件 > 配置文件为根目录下的 config.php,详情如下所示: ```php const Config = [ // 是否开启调试 'debug' => true, 'name' => 'weilaibike', // 分布式 是否允许 Register服务 'is_register_run' => true, // 分布式 内网主机ip 'gateway_lanIp' => '192.168.0.204', // 分布式 Register服务地址 'registerAddress' => '192.168.0.204:1238', //数据库配置 'db' => [ 'host' => 'node2', 'port' => 3306, 'user' => 'weilaibike', 'password' => 'LGcaxd5WJjepJccx', 'db_name' => 'weilaibike' ], //redis配置 'redis' => [ 'host' => 'node3', 'port' => 6379, 'database' => 0 ], //mongodb配置 'mongodb' => [ 'url' => 'mongodb://node3:27017', 'database' => 'weilaibike' ], 'gateway' => [ 'is_run' => true, 'port' => 8282, 'count' => 4, 'pingInterval' => 300, 'pingNotResponseLimit' => 1, 'startPort' => 3200, ], 'business' => [ 'is_run' => true, 'count' => 4 ], //用户端关闭订单接口 'close_order_api_url' => 'https://api.weilaibike.com/api/relay/order/auto-close?key=D7sM78f1kOOndRMgX9mkwHYG8SzHFW6AZbPXAwAfZuLgyxbFHji99SZF2tP9PJ0r' ]; ``` ### 服务器启动准备工作 - 安装composer,并在跟目录下安装项目依赖包,命令如下 ```bash $ composer install ``` ### 项目启动及服务命令(详情请查看文档) - 启动 - 启动命令(以debug(调试)方式启动) ```bash $ php start.php start ``` - 以daemon(守护进程)方式启动 ```bash $ php start.php start -d ``` - 停止 ```bash $ php start.php stop ``` - 重启 ```bash $ php start.php restart ``` - 平滑重启 ```bash $ php start.php reload ``` - 查看状态 ```bash $ php start.php status ```