Toto smaže stránku "开发文档"
. Buďte si prosím jisti.
中继端:主要提供车(中控)对接的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,
// 分布式 是否允许Register服务(分布式部署只留只开启一个服务,其他从服务器关闭)
'is_register_run' => true,
// 分布式 内网主机ip
'gateway_lanIp' => '127.0.0.1',
// 分布式 Register服务地址(上部配置开启服务的配置服务器地址)[端口号1238]
'registerAddress' => '127.0.0.1:1238',
//数据库配置文件
'db' => [
'host' => 'node2',
'port' => 3306,
'user' => 'weilaibike',
'password' => '***',
'db_name' => 'weilaibike'
],
//redis配置文件
'redis' => [
'host' => 'node3',
'port' => 6379
],
//mongodb配置文件
'mongodb' => 'mongodb://node3/weilaibike',
//
'gateway' => [
'is_run' => true,
'count' => 4,//一般为cpu核数
'pingInterval' => 130,//心跳包间隔多少判断为离线
'pingNotResponseLimit' => 1,//间隔多少个判断为离线
],
'business' => [
'is_run' => true,
'count' => 4 //cpu核数的1-3倍
]
];
安装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
Toto smaže stránku "开发文档"
. Buďte si prosím jisti.