Commit 5609ac12 by BANice

端口逻辑地址

parent 0d87ce20
......@@ -8,8 +8,8 @@ REGISTER_IP=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
START_FILES=start_businessworker
DB_USER=cdz
DB_NAME=cdzpay
DB_PASSWORD=senthink123
DB_USER=ctz
DB_NAME=lierda_ctz
DB_PASSWORD=ctz
DB_PORT=3306
DB_HOST=127.0.0.1
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="cdz">
<serverData>
<paths name="cdz">
<serverdata>
<mappings>
<mapping deploy="/cdzbusiness" local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/workerman/gateway-worker" />
<path value="$PROJECT_DIR$/vendor/workerman/mysql" />
<path value="$PROJECT_DIR$/vendor/workerman/workerman" />
<path value="$PROJECT_DIR$/vendor/composer" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />
</project>
\ No newline at end of file
......@@ -10,6 +10,7 @@ namespace Application\Controller;
use Application\Controller;
use Application\Model\GatewayModel;
use GatewayWorker\Lib\Gateway;
class AccessController extends Controller
......@@ -30,7 +31,7 @@ class AccessController extends Controller
/**
* 网关请求入网
* command 01
* command 02
*/
public function access()
{
......@@ -39,6 +40,22 @@ class AccessController extends Controller
$this->response->send('02');
$gatewayModel = new GatewayModel();
$mac = $this->get('mac');
$gatewayId = $gatewayModel->getColumn('id'," mac_address = '$mac' ");
v($gatewayId);
if($gatewayId != false)
{
}
//todo gatewayId 查询所有的口子的id和mad 存入session
}else{
Gateway::closeClient($this->clientId);
......
......@@ -22,6 +22,9 @@ class CertifyController extends Controller
]
];
/**
* command 01
*/
public function certify()
{
$nonce = $this->getNonce();
......
<?php
/**
* Created by PhpStorm.
* User: suhangyang
* Date: 2018/5/20
* Time: 下午11:10
*/
namespace Application\Controller;
use Application\Controller;
class PortController extends Controller
{
protected $parameterMap = [
'08' => [
'count' => 1
],
'09' => [
'count' => 1,
],
];
public function online()
{
$count = $this->get('count');
$logicNums = str_split(substr($this->message,$this->plc,$count),2);
$this->plc+=$count;
$macs = str_split(substr($this->message,$this->plc),16);
$logicMacArray = array_combine($logicNums,$macs);
}
}
\ No newline at end of file
......@@ -114,5 +114,16 @@ class Events
}
public static function getRedis()
{
return static::$redis;
}
public static function getDb()
{
return static::$db;
}
}
\ No newline at end of file
......@@ -33,6 +33,7 @@ class Model
public function getColumn($column,$where)
{
return $this->db->single("SELECT $column FROM $this->table WHERE $where");
}
......
......@@ -14,7 +14,7 @@ use Application\Model;
class GatewayModel extends Model
{
protected $table = 'gateway';
protected $table = 'gateways';
......
<?php
/**
* Created by PhpStorm.
* User: suhangyang
* Date: 2018/5/20
* Time: 下午11:23
*/
namespace Lib\port;
use Lib\redis\RedisKey;
class Port
{
private $mac;
private $id;
private $logic;
private $gatewayId;
private $gatewayMac;
private $redis;
public function __construct()
{
$this->redis = \Events::getRedis();
}
public function register(array $logicMac)
{
$this->redis->hMset(RedisKey::PORT_MAC_LOGIC_HASH,array_flip($logicMac));
call_user_func_array([$this->redis,'zset'],)
$this->redis->zAdd()
}
public function pipe()
{
$this->redis = $this->redis->multi(\Redis::PIPELINE);
}
public function exec()
{
$this->redis->exec();
}
}
\ No newline at end of file
......@@ -13,4 +13,17 @@ class RedisKey
{
const GATEWAY_MAC_ID_ZSET = 'gateway:mac_id:zset';
const PORT_MAC_ID_ZSET = 'port:mac_id:zset';
const PORT_MAC_LOGIC_HASH = 'port:mac_logic:hash';
const GATEWAY_PORT_MAC_LOGIC_HASH = ':port:mac_logic_hash';
const PORT_STATE_ZSET = 'port:state:zset';
}
\ No newline at end of file
......@@ -1168,3 +1168,72 @@ Stack trace:
2018-05-20 16:29:52 pid:2481 Workerman[start.php] stopping ...
2018-05-20 16:29:52 pid:2481 Workerman[start.php] has been stopped
2018-05-20 16:29:54 pid:2510 Workerman[start.php] start in DEBUG mode
2018-05-20 23:48:46 pid:5039 Workerman[start.php] start in DEBUG mode
2018-05-20 23:49:31 pid:5042 PDOException: SQL:SELECT id FROM gateway WHERE where mac = '009569c41db6' SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where mac = '009569c41db6'' at line 1 in /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php:1772
Stack trace:
#0 /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php(1924): Workerman\MySQL\Connection->execute('SELECT id FROM ...', NULL)
#1 /var/www/senthink/cdz/cdzGateway/Application/Model.php(36): Workerman\MySQL\Connection->single('SELECT id FROM ...')
#2 /var/www/senthink/cdz/cdzGateway/Application/Controller/AccessController.php(47): Application\Model->getColumn('id', 'where mac = '00...')
#3 /var/www/senthink/cdz/cdzGateway/Application/Events.php(99): Application\Controller\AccessController->access()
#4 [internal function]: Events::onMessage('7f0000010fa0000...', 'ffaa0402000e520...')
#5 /var/www/senthink/cdz/cdzGateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(395): call_user_func('Events::onMessa...', '7f0000010fa0000...', 'ffaa0402000e520...')
#6 [internal function]: GatewayWorker\BusinessWorker->onGatewayMessage(Object(Workerman\Connection\AsyncTcpConnection), Array)
#7 /var/www/senthink/cdz/cdzGateway/vendor/workerman/workerman/Connection/TcpConnection.php(639): call_user_func(Array, Object(Workerman\Connection\AsyncTcpConnection), Array)
#8 [internal function]: Workerman\Connection\TcpConnection->baseRead(Resource id #65)
#9 {main}
2018-05-20 23:49:31 pid:5042 Worker process terminated
2018-05-20 23:49:31 pid:5039 worker[senthink_cdz_business:5042] exit with status 64000
2018-05-20 23:51:11 pid:5039 Workerman[start.php] stopping ...
2018-05-20 23:51:11 pid:5039 Workerman[start.php] has been stopped
2018-05-20 23:51:14 pid:5101 Workerman[start.php] start in DEBUG mode
2018-05-20 23:51:36 pid:5104 PDOException: SQL:SELECT id FROM gateways WHERE where mac = '009569c41db6' SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where mac = '009569c41db6'' at line 1 in /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php:1772
Stack trace:
#0 /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php(1924): Workerman\MySQL\Connection->execute('SELECT id FROM ...', NULL)
#1 /var/www/senthink/cdz/cdzGateway/Application/Model.php(36): Workerman\MySQL\Connection->single('SELECT id FROM ...')
#2 /var/www/senthink/cdz/cdzGateway/Application/Controller/AccessController.php(47): Application\Model->getColumn('id', 'where mac = '00...')
#3 /var/www/senthink/cdz/cdzGateway/Application/Events.php(99): Application\Controller\AccessController->access()
#4 [internal function]: Events::onMessage('7f0000010fa0000...', 'ffaa0402000e520...')
#5 /var/www/senthink/cdz/cdzGateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(395): call_user_func('Events::onMessa...', '7f0000010fa0000...', 'ffaa0402000e520...')
#6 [internal function]: GatewayWorker\BusinessWorker->onGatewayMessage(Object(Workerman\Connection\AsyncTcpConnection), Array)
#7 /var/www/senthink/cdz/cdzGateway/vendor/workerman/workerman/Connection/TcpConnection.php(639): call_user_func(Array, Object(Workerman\Connection\AsyncTcpConnection), Array)
#8 [internal function]: Workerman\Connection\TcpConnection->baseRead(Resource id #65)
#9 {main}
2018-05-20 23:51:36 pid:5104 Worker process terminated
2018-05-20 23:51:36 pid:5101 worker[senthink_cdz_business:5104] exit with status 64000
2018-05-20 23:52:39 pid:5101 Workerman[start.php] stopping ...
2018-05-20 23:52:39 pid:5101 Workerman[start.php] has been stopped
2018-05-20 23:52:46 pid:5146 Workerman[start.php] start in DEBUG mode
2018-05-20 23:53:03 pid:5148 PDOException: SQL:SELECT id FROM gateways WHERE where mac = '009569c41db6' SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where mac = '009569c41db6'' at line 1 in /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php:1772
Stack trace:
#0 /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php(1924): Workerman\MySQL\Connection->execute('SELECT id FROM ...', NULL)
#1 /var/www/senthink/cdz/cdzGateway/Application/Model.php(37): Workerman\MySQL\Connection->single('SELECT id FROM ...')
#2 /var/www/senthink/cdz/cdzGateway/Application/Controller/AccessController.php(47): Application\Model->getColumn('id', ' where mac = '0...')
#3 /var/www/senthink/cdz/cdzGateway/Application/Events.php(99): Application\Controller\AccessController->access()
#4 [internal function]: Events::onMessage('7f0000010fa0000...', 'ffaa0402000e520...')
#5 /var/www/senthink/cdz/cdzGateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(395): call_user_func('Events::onMessa...', '7f0000010fa0000...', 'ffaa0402000e520...')
#6 [internal function]: GatewayWorker\BusinessWorker->onGatewayMessage(Object(Workerman\Connection\AsyncTcpConnection), Array)
#7 /var/www/senthink/cdz/cdzGateway/vendor/workerman/workerman/Connection/TcpConnection.php(639): call_user_func(Array, Object(Workerman\Connection\AsyncTcpConnection), Array)
#8 [internal function]: Workerman\Connection\TcpConnection->baseRead(Resource id #65)
#9 {main}
2018-05-20 23:53:03 pid:5148 Worker process terminated
2018-05-20 23:53:03 pid:5146 worker[senthink_cdz_business:5148] exit with status 64000
2018-05-20 23:55:05 pid:5146 Workerman[start.php] stopping ...
2018-05-20 23:55:05 pid:5146 Workerman[start.php] has been stopped
2018-05-20 23:55:07 pid:5205 Workerman[start.php] start in DEBUG mode
2018-05-20 23:55:57 pid:5211 PDOException: SQL:SELECT id FROM gateways WHERE mac = '009569c41db6' SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mac' in 'where clause' in /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php:1772
Stack trace:
#0 /var/www/senthink/cdz/cdzGateway/vendor/workerman/mysql/src/Connection.php(1924): Workerman\MySQL\Connection->execute('SELECT id FROM ...', NULL)
#1 /var/www/senthink/cdz/cdzGateway/Application/Model.php(37): Workerman\MySQL\Connection->single('SELECT id FROM ...')
#2 /var/www/senthink/cdz/cdzGateway/Application/Controller/AccessController.php(47): Application\Model->getColumn('id', ' mac = '009569c...')
#3 /var/www/senthink/cdz/cdzGateway/Application/Events.php(99): Application\Controller\AccessController->access()
#4 [internal function]: Events::onMessage('7f0000010fa0000...', 'ffaa0402000e520...')
#5 /var/www/senthink/cdz/cdzGateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(395): call_user_func('Events::onMessa...', '7f0000010fa0000...', 'ffaa0402000e520...')
#6 [internal function]: GatewayWorker\BusinessWorker->onGatewayMessage(Object(Workerman\Connection\AsyncTcpConnection), Array)
#7 /var/www/senthink/cdz/cdzGateway/vendor/workerman/workerman/Connection/TcpConnection.php(639): call_user_func(Array, Object(Workerman\Connection\AsyncTcpConnection), Array)
#8 [internal function]: Workerman\Connection\TcpConnection->baseRead(Resource id #65)
#9 {main}
2018-05-20 23:55:57 pid:5211 Worker process terminated
2018-05-20 23:55:57 pid:5205 worker[senthink_cdz_business:5211] exit with status 64000
2018-05-20 23:56:27 pid:5205 Workerman[start.php] stopping ...
2018-05-20 23:56:27 pid:5205 Workerman[start.php] has been stopped
2018-05-20 23:56:29 pid:5250 Workerman[start.php] start in DEBUG mode
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment