未来bike中控服务端

Mead f0fda1d0b7 init 3 years ago
Applications f0fda1d0b7 init 3 years ago
.gitignore 9526315cf8 定位redis维护 5 years ago
MIT-LICENSE.txt 65e93a0c99 init 5 years ago
README.md 3226373fc0 调整低电量控制 4 years ago
composer.json 10ef1fc437 修改车的 5 years ago
config.huawei_web.php 12d01da1ee 添加配置「测试」信息 4 years ago
config.node2.php bd6a98219c 调整配置name 5 years ago
config.node3.php bd6a98219c 调整配置name 5 years ago
config.node4.php 62e1468788 init 3 years ago
config.test.php ccc47dae97 小斑马租车可以骑出运营区域 5 years ago
sokit.ini 65e93a0c99 init 5 years ago
sokit.txt 65e93a0c99 init 5 years ago
start.php 1d9f643412 定位redis维护 5 years ago
start_for_win.bat 65e93a0c99 init 5 years ago

README.md

未来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,详情如下所示:

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,并在跟目录下安装项目依赖包,命令如下

    $ composer install
    

项目启动及服务命令(详情请查看文档)

  • 启动

    • 启动命令(以debug(调试)方式启动)

      $ php start.php start 
      
    • 以daemon(守护进程)方式启动

      $ php start.php start -d
      
  • 停止

    $ php start.php stop
    
  • 重启

    $ php start.php restart
    
  • 平滑重启

    $ php start.php reload
    
  • 查看状态

    $ php start.php status