Commit cd7304ae by BANice

bintohex的协议对粘包进行处理,当缓存区中的数据长度大于等于第一个头中的length字段,返回lenght字段,小于则继续接受

parent 1ed38de1
......@@ -5,6 +5,12 @@ GATEWAY_COUNT=1
GATEWAY_NAME=cdz
REGISTER_PORT=1239
REGISTER_IP=127.0.0.1
#REGISTER_IP=cdzregister.default.svc.cluster.local
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
START_FILES=start_businessworker
\ No newline at end of file
START_FILES=start_businessworker
DB_USE=cdz
DB_NAME=cdzpay
DB_HOST=127.0.0.1
DB_PORT=6379
DB_PASSWORD=senthink123
\ 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="WebServers">
<option name="servers">
<webServer id="2c45e911-5d40-4ae3-a0f2-38159dc8dcb3" name="cdz" url="http://hub.senthink.com">
<fileTransfer anonymous="true" host="hub.senthink.com" port="21">
<advancedOptions>
<advancedOptions compatibilityMode="true" dataProtectionLevel="Private" passiveMode="true" />
</advancedOptions>
<option name="port" value="21" />
</fileTransfer>
</webServer>
</option>
</component>
</project>
\ No newline at end of file
......@@ -2,24 +2,17 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="00edf348-0453-4317-8d2b-bf5eb8ea4b7a" name="Default" comment="">
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Application/Controller/AccessController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/redis/RedisKey.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Application/Model.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Application/Model/GatewayModel.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.env" beforeDir="false" afterPath="$PROJECT_DIR$/.env" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/cdzGateway.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/cdzGateway.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/CertifyController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/CertifyController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/AccessController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/AccessController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Events.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Events.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/start_businessworker.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/start_businessworker.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/start_gateway.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/start_gateway.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/start_register.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/start_register.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/Env.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/Env.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/Response.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/Response.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/redis/RedisKey.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/redis/RedisKey.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Route/Api.php" beforeDir="false" afterPath="$PROJECT_DIR$/Route/Api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/start.php" beforeDir="false" afterPath="$PROJECT_DIR$/start.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vendor/workerman/workerman.log" beforeDir="false" afterPath="$PROJECT_DIR$/vendor/workerman/workerman.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php" beforeDir="false" afterPath="$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
......@@ -33,98 +26,101 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="start.php" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/start.php">
<file leaf-file-name=".env" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="427">
<caret line="66" column="4" selection-start-line="66" selection-start-column="4" selection-end-line="66" selection-end-column="4" />
<state relative-caret-position="165">
<caret line="11" column="10" lean-forward="true" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="10" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name=".env" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.env">
<file leaf-file-name="composer.json" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
<state relative-caret-position="195">
<caret line="13" selection-start-line="13" selection-end-line="13" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="CertifyController.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/CertifyController.php">
<file leaf-file-name="Events.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Events.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="382">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
<state relative-caret-position="395">
<caret line="49" column="8" selection-start-line="49" selection-start-column="8" selection-end-line="49" selection-end-column="8" />
<folding>
<element signature="e#130#157#0#PHP" expanded="true" />
<element signature="e#94#106#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Controller.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller.php">
<file leaf-file-name="Model.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Model.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2153">
<caret line="128" lean-forward="true" selection-start-line="128" selection-end-line="128" />
<state relative-caret-position="57">
<caret line="14" column="24" lean-forward="true" selection-start-line="14" selection-start-column="24" selection-end-line="14" selection-end-column="24" />
<folding>
<element signature="e#6#93#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Response.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/Response.php">
<file leaf-file-name="GatewayModel.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Model/GatewayModel.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1275">
<caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
<state relative-caret-position="195">
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Env.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/Env.php">
<file leaf-file-name="Api.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Route/Api.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="262">
<caret line="82" column="26" lean-forward="true" selection-start-line="82" selection-start-column="26" selection-end-line="82" selection-end-column="26" />
<state relative-caret-position="315">
<caret line="26" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AccessController.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php">
<file leaf-file-name="Bintohex.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="30" column="9" selection-start-line="30" selection-start-column="9" selection-end-line="30" selection-end-column="9" />
<folding>
<element signature="e#126#153#0#PHP" expanded="true" />
</folding>
<state relative-caret-position="330">
<caret line="27" column="29" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="29" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RedisKey.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<file leaf-file-name="TcpConnection.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Connection/TcpConnection.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<state relative-caret-position="-11351">
<caret line="22" column="6" selection-start-line="22" selection-start-column="6" selection-end-line="22" selection-end-column="6" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Api.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Route/Api.php">
<file leaf-file-name="AccessController.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="25" selection-start-line="25" selection-end-line="25" />
<state relative-caret-position="230">
<caret line="48" column="27" selection-start-line="48" selection-start-column="27" selection-end-line="48" selection-end-column="27" />
<folding>
<element signature="e#126#153#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Bintohex.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php">
<file leaf-file-name="Controller.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-668">
<caret line="8" column="29" selection-start-line="8" selection-start-column="29" selection-end-line="8" selection-end-column="29" />
<state relative-caret-position="350">
<caret line="316" column="20" selection-start-line="316" selection-start-column="20" selection-end-line="316" selection-end-column="20" />
</state>
</provider>
</entry>
......@@ -158,16 +154,19 @@
<option value="$PROJECT_DIR$/Application/start_register.php" />
<option value="$PROJECT_DIR$/Application/start_businessworker.php" />
<option value="$PROJECT_DIR$/Application/start_gateway.php" />
<option value="$PROJECT_DIR$/Application/Events.php" />
<option value="$PROJECT_DIR$/Application/Controller.php" />
<option value="$PROJECT_DIR$/Lib/Response.php" />
<option value="$PROJECT_DIR$/Route/Api.php" />
<option value="$PROJECT_DIR$/Application/Controller/CertifyController.php" />
<option value="$PROJECT_DIR$/Application/Controller/AccessController.php" />
<option value="$PROJECT_DIR$/Lib/redis/RedisKey.php" />
<option value="$PROJECT_DIR$/Lib/Env.php" />
<option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/start.php" />
<option value="$PROJECT_DIR$/Lib/redis/RedisKey.php" />
<option value="$PROJECT_DIR$/Application/Model.php" />
<option value="$PROJECT_DIR$/Application/Model/GatewayModel.php" />
<option value="$PROJECT_DIR$/Application/Controller.php" />
<option value="$PROJECT_DIR$/Application/Controller/AccessController.php" />
<option value="$PROJECT_DIR$/Route/Api.php" />
<option value="$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php" />
<option value="$PROJECT_DIR$/Application/Events.php" />
<option value="$PROJECT_DIR$/.env" />
</list>
</option>
</component>
......@@ -191,7 +190,7 @@
</include_path>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="212" />
<option name="x" value="73" />
<option name="y" value="53" />
<option name="width" value="1533" />
<option name="height" value="1027" />
......@@ -222,13 +221,8 @@
<path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="cdz_gateway" type="462c0819:PsiDirectoryNode" />
<item name="Lib" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="cdz_gateway" type="462c0819:PsiDirectoryNode" />
<item name="Lib" type="462c0819:PsiDirectoryNode" />
<item name="redis" type="462c0819:PsiDirectoryNode" />
<item name="Application" type="462c0819:PsiDirectoryNode" />
<item name="Model" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -247,14 +241,15 @@
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/Application" />
<recent name="$PROJECT_DIR$" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/Lib" />
<recent name="$PROJECT_DIR$/vendor/workerman/workerman/Protocols" />
<recent name="$PROJECT_DIR$/Application" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
......@@ -288,12 +283,12 @@
<workItem from="1526633655013" duration="252000" />
<workItem from="1526633932284" duration="2799000" />
<workItem from="1526693912028" duration="527000" />
<workItem from="1526781646989" duration="8011000" />
<workItem from="1526781646989" duration="12240000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="35434000" />
<option name="totallyTimeSpent" value="39663000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -305,15 +300,16 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="212" y="53" width="1533" height="1027" extended-state="0" />
<frame x="73" y="53" width="1533" height="1027" extended-state="0" />
<editor active="true" />
<layout>
<window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49966466" weight="0.3296582" />
<window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50033534" side_tool="true" weight="0.32855567" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="File Transfer" weight="0.3296582" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Version Control" order="7" sideWeight="0.49966466" weight="0.3296582" />
<window_info anchor="bottom" id="Terminal" order="7" sideWeight="0.49966466" visible="true" weight="0.32855567" />
<window_info anchor="bottom" id="Terminal" order="7" sideWeight="0.49966466" weight="0.32855567" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.29644534" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="right" id="Database" order="3" />
......@@ -336,37 +332,6 @@
<option name="myLimit" value="2678400000" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/Application/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1890">
<caret line="135" selection-start-line="135" selection-end-line="135" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/Env.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1260">
<caret line="89" column="29" lean-forward="true" selection-start-line="89" selection-start-column="29" selection-end-line="89" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/start.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="33" column="69" selection-start-line="33" selection-start-column="69" selection-end-line="33" selection-end-column="69" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/Log.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1020">
<caret line="75" selection-start-line="75" selection-end-line="75" />
<folding>
<element signature="e#111#151#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
......@@ -513,13 +478,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="13" selection-start-line="13" selection-end-line="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
......@@ -610,96 +568,134 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Events.php">
<entry file="file://$PROJECT_DIR$/Lib/Aes.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1230">
<caret line="86" lean-forward="true" selection-start-line="86" selection-end-line="86" />
<folding>
<element signature="e#94#106#0#PHP" expanded="true" />
</folding>
<state relative-caret-position="150">
<caret line="15" column="27" selection-start-line="15" selection-start-column="27" selection-end-line="15" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/Aes.php">
<entry file="file://$PROJECT_DIR$/Lib/Response.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="15" column="27" selection-start-line="15" selection-start-column="27" selection-end-line="15" selection-end-column="27" />
<state relative-caret-position="1275">
<caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller.php">
<entry file="file://$PROJECT_DIR$/Application/Controller/CertifyController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2153">
<caret line="128" lean-forward="true" selection-start-line="128" selection-end-line="128" />
<state relative-caret-position="382">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
<folding>
<element signature="e#130#157#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php">
<entry file="file://$PROJECT_DIR$/Lib/Env.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-668">
<caret line="8" column="29" selection-start-line="8" selection-start-column="29" selection-end-line="8" selection-end-column="29" />
<state relative-caret-position="262">
<caret line="82" column="26" lean-forward="true" selection-start-line="82" selection-start-column="26" selection-end-line="82" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/Response.php">
<entry file="file://$PROJECT_DIR$/start.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1275">
<caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
<state relative-caret-position="52">
<caret line="41" column="35" lean-forward="true" selection-start-line="41" selection-start-column="35" selection-end-line="41" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Route/Api.php">
<entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="25" selection-start-line="25" selection-end-line="25" />
<state relative-caret-position="135">
<caret line="14" selection-start-line="14" selection-end-line="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/CertifyController.php">
<entry file="file://$PROJECT_DIR$/vendor/workerman/mysql/src/Connection.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="382">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
<state relative-caret-position="135">
<caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Model.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="57">
<caret line="14" column="24" lean-forward="true" selection-start-line="14" selection-start-column="24" selection-end-line="14" selection-end-column="24" />
<folding>
<element signature="e#130#157#0#PHP" expanded="true" />
<element signature="e#6#93#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Model/GatewayModel.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="350">
<caret line="316" column="20" selection-start-line="316" selection-start-column="20" selection-end-line="316" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="30" column="9" selection-start-line="30" selection-start-column="9" selection-end-line="30" selection-end-column="9" />
<state relative-caret-position="230">
<caret line="48" column="27" selection-start-line="48" selection-start-column="27" selection-end-line="48" selection-end-column="27" />
<folding>
<element signature="e#126#153#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<entry file="file://$PROJECT_DIR$/Route/Api.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<state relative-caret-position="315">
<caret line="26" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Connection/TcpConnection.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
<state relative-caret-position="-11351">
<caret line="22" column="6" selection-start-line="22" selection-start-column="6" selection-end-line="22" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/Env.php">
<entry file="file://$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="262">
<caret line="82" column="26" lean-forward="true" selection-start-line="82" selection-start-column="26" selection-end-line="82" selection-end-column="26" />
<state relative-caret-position="330">
<caret line="27" column="29" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/start.php">
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="13" selection-start-line="13" selection-end-line="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Events.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="395">
<caret line="49" column="8" selection-start-line="49" selection-start-column="8" selection-end-line="49" selection-end-column="8" />
<folding>
<element signature="e#94#106#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="427">
<caret line="66" column="4" selection-start-line="66" selection-start-column="4" selection-end-line="66" selection-end-column="4" />
<state relative-caret-position="165">
<caret line="11" column="10" lean-forward="true" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="10" />
</state>
</provider>
</entry>
......
......@@ -39,6 +39,9 @@ class Controller
protected $message;
/**
* @var Request
*/
protected $request;
/**
......@@ -57,6 +60,9 @@ class Controller
protected $logRecords = [];
/**
* @var array
*/
protected $defaultHeader = [
'preamble' => 2,
......@@ -102,6 +108,12 @@ class Controller
*/
protected $response;
/**
* @var int
*/
protected $plc = 0;
/**
*
* Controller constructor.
......@@ -130,6 +142,9 @@ class Controller
}
/**
* todo 一次性写入日志
*/
public function __destruct()
{
if (count($this->logRecords) != 0) {
......@@ -157,12 +172,16 @@ class Controller
$parameters[$key] = substr($data, $start, $length);
if (property_exists($this, $key)) {
$this->$key = $parameters[$key];
}
$start += $length;
$this->plc +=$length;
}
return $parameters;
......@@ -274,8 +293,12 @@ class Controller
public function __call($name, $arguments)
{
//记录日志
if (in_array($name, ['debug', 'error', 'warn', 'alert'])) {
if (count($arguments) === 2) {
$logRecord = new LogRecord($name, $arguments[0]);
} else {
......@@ -301,4 +324,22 @@ class Controller
return $this->request->get($key);
}
/**
* @return int
*/
public function getPlc(): int
{
return $this->plc;
}
/**
* @param int $plc
*/
public function setPlc(int $plc): void
{
$this->plc = $plc;
}
}
\ No newline at end of file
......@@ -19,10 +19,19 @@ class AccessController extends Controller
'02' => [
'mac' => 6
]
],
'03' => [
'start_num' => 1,
'count' => 1,
'total_count' => 1
],
];
/**
* 网关请求入网
* command 01
*/
public function access()
{
if($_SESSION['certified'] === true)
......@@ -34,10 +43,60 @@ class AccessController extends Controller
Gateway::closeClient($this->clientId);
}
}
public function syncPort()
{
$startLogicNum = $this->get('start_num');
$count = $this->get('count');
$totalCount = $this->get('total_count');
$portMacsState = substr($this->message,$this->plc);
var_dump($portMacsState);
}
}
}
\ No newline at end of file
......@@ -38,8 +38,6 @@ class Events
static::$redis->pconnect(Env::get('REDIS_HOST'), Env::get('REDIS_PORT'), 0);
//static::$redis->pconnect('redis',Env::get('REDIS_PORT'),0);
if (Env::has('REDIS_PASSWORD')) {
var_dump(Env::get('REDIS_PASSWORD'));
......@@ -49,7 +47,7 @@ class Events
static::$redis->select(4);
// static::$db = new Connection(Env::get('DB_HOST'), Env::get('DB_PORT'), Env::get('DB_USERNAME'), Env::get('DB_PASSWORD'), Env::get('DB_DATABASE'));
static::$db = new Connection(Env::get('DB_HOST'), Env::get('DB_PORT'), Env::get('DB_USER'), Env::get('DB_PASSWORD'), Env::get('DB_NAME'));
}
......@@ -85,6 +83,9 @@ class Events
$controllerName = APP.$controllerName;
//去除crc字节
$message = substr($message,0,-2);
$controller = new $controllerName($clientId,$message,$command);
$controller->$method();
......
<?php
/**
* Created by PhpStorm.
* User: suhangyang
* Date: 2017/12/2
* Time: 下午12:57
*/
namespace Application;
//use Applications\messagePush\Events;
use Workerman\MySQL\Connection;
class Model
{
/**
* @var Connection
*/
protected $db;
protected $table;
public function __construct()
{
$this->db = \Events::getDb();
}
public function getColumn($column,$where)
{
return $this->db->single("SELECT $column FROM $this->table WHERE $where");
}
public function getColumns(Array $columns,$where)
{
$columns = implode(',',$columns);
return $this->db->row("SELECT $columns FROM $this->table WHERE $where");
}
public function getRow($where)
{
return $this->db->row("SELECT * FROM $this->table WHERE $where");
}
public function insertRow(Array $data)
{
return $this->db->insert($this->table)->cols($data)->query();
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/5/20
* Time: 下午3:10
*/
namespace Application\Model;
use Application\Model;
class GatewayModel extends Model
{
protected $table = 'gateway';
}
\ No newline at end of file
......@@ -13,5 +13,4 @@ class RedisKey
{
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ class Api
static::add('02','AccessController@access');
static::add('03','AccessController@syncPort');
}
......
......@@ -962,3 +962,110 @@ Stack trace:
2018-05-20 13:53:56 pid:12560 Workerman[start.php] start in DEBUG mode
2018-05-20 14:26:29 pid:12560 Workerman[start.php] stopping ...
2018-05-20 14:26:29 pid:12560 Workerman[start.php] has been stopped
2018-05-20 15:30:48 pid:13116 Workerman[start.php] start in DEBUG mode
2018-05-20 15:30:48 pid:13120 PDOException: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) in /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php:1711
Stack trace:
#0 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1711): PDO->__construct('mysql:dbname=;h...', NULL, NULL, Array)
#1 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1698): Workerman\MySQL\Connection->connect()
#2 /var/www/senthink/cdz_gateway/Application/Events.php(50): Workerman\MySQL\Connection->__construct(NULL, NULL, NULL, NULL, NULL)
#3 [internal function]: Events::onWorkerStart(Object(GatewayWorker\BusinessWorker))
#4 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(218): call_user_func('Events::onWorke...', Object(GatewayWorker\BusinessWorker))
#5 [internal function]: GatewayWorker\BusinessWorker->onWorkerStart(Object(GatewayWorker\BusinessWorker))
#6 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(2115): call_user_func(Array, Object(GatewayWorker\BusinessWorker))
#7 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(197): Workerman\Worker->run()
#8 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1323): GatewayWorker\BusinessWorker->run()
#9 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1156): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))
#10 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1130): Workerman\Worker::forkWorkersForLinux()
#11 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(466): Workerman\Worker::forkWorkers()
#12 /var/www/senthink/cdz_gateway/start.php(73): Workerman\Worker::runAll()
#13 {main}
2018-05-20 15:30:48 pid:13117 PDOException: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) in /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php:1711
Stack trace:
#0 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1711): PDO->__construct('mysql:dbname=;h...', NULL, NULL, Array)
#1 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1698): Workerman\MySQL\Connection->connect()
#2 /var/www/senthink/cdz_gateway/Application/Events.php(50): Workerman\MySQL\Connection->__construct(NULL, NULL, NULL, NULL, NULL)
#3 [internal function]: Events::onWorkerStart(Object(GatewayWorker\BusinessWorker))
#4 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(218): call_user_func('Events::onWorke...', Object(GatewayWorker\BusinessWorker))
#5 [internal function]: GatewayWorker\BusinessWorker->onWorkerStart(Object(GatewayWorker\BusinessWorker))
#6 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(2115): call_user_func(Array, Object(GatewayWorker\BusinessWorker))
#7 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(197): Workerman\Worker->run()
#8 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1323): GatewayWorker\BusinessWorker->run()
#9 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1156): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))
#10 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1130): Workerman\Worker::forkWorkersForLinux()
#11 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(466): Workerman\Worker::forkWorkers()
#12 /var/www/senthink/cdz_gateway/start.php(73): Workerman\Worker::runAll()
#13 {main}
2018-05-20 15:30:48 pid:13118 PDOException: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) in /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php:1711
Stack trace:
#0 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1711): PDO->__construct('mysql:dbname=;h...', NULL, NULL, Array)
#1 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1698): Workerman\MySQL\Connection->connect()
#2 /var/www/senthink/cdz_gateway/Application/Events.php(50): Workerman\MySQL\Connection->__construct(NULL, NULL, NULL, NULL, NULL)
#3 [internal function]: Events::onWorkerStart(Object(GatewayWorker\BusinessWorker))
#4 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(218): call_user_func('Events::onWorke...', Object(GatewayWorker\BusinessWorker))
#5 [internal function]: GatewayWorker\BusinessWorker->onWorkerStart(Object(GatewayWorker\BusinessWorker))
#6 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(2115): call_user_func(Array, Object(GatewayWorker\BusinessWorker))
#7 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(197): Workerman\Worker->run()
#8 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1323): GatewayWorker\BusinessWorker->run()
#9 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1156): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))
#10 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1130): Workerman\Worker::forkWorkersForLinux()
#11 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(466): Workerman\Worker::forkWorkers()
#12 /var/www/senthink/cdz_gateway/start.php(73): Workerman\Worker::runAll()
#13 {main}
2018-05-20 15:30:48 pid:13119 PDOException: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) in /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php:1711
Stack trace:
#0 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1711): PDO->__construct('mysql:dbname=;h...', NULL, NULL, Array)
#1 /var/www/senthink/cdz_gateway/vendor/workerman/mysql/src/Connection.php(1698): Workerman\MySQL\Connection->connect()
#2 /var/www/senthink/cdz_gateway/Application/Events.php(50): Workerman\MySQL\Connection->__construct(NULL, NULL, NULL, NULL, NULL)
#3 [internal function]: Events::onWorkerStart(Object(GatewayWorker\BusinessWorker))
#4 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(218): call_user_func('Events::onWorke...', Object(GatewayWorker\BusinessWorker))
#5 [internal function]: GatewayWorker\BusinessWorker->onWorkerStart(Object(GatewayWorker\BusinessWorker))
#6 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(2115): call_user_func(Array, Object(GatewayWorker\BusinessWorker))
#7 /var/www/senthink/cdz_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(197): Workerman\Worker->run()
#8 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1323): GatewayWorker\BusinessWorker->run()
#9 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1156): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))
#10 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(1130): Workerman\Worker::forkWorkersForLinux()
#11 /var/www/senthink/cdz_gateway/vendor/workerman/workerman/Worker.php(466): Workerman\Worker::forkWorkers()
#12 /var/www/senthink/cdz_gateway/start.php(73): Workerman\Worker::runAll()
#13 {main}
2018-05-20 15:30:49 pid:13118 Worker process terminated
2018-05-20 15:30:49 pid:13119 Worker process terminated
2018-05-20 15:30:49 pid:13120 Worker process terminated
2018-05-20 15:30:49 pid:13116 Workerman[start.php] stopping ...
2018-05-20 15:30:49 pid:13116 worker[senthink_cdz_business:13118] exit with status 64000
2018-05-20 15:30:49 pid:13116 worker[senthink_cdz_business:13120] exit with status 64000
2018-05-20 15:30:49 pid:13117 Worker process terminated
2018-05-20 15:30:49 pid:13116 worker[senthink_cdz_business:13119] exit with status 64000
2018-05-20 15:30:49 pid:13116 worker[senthink_cdz_business:13117] exit with status 64000
2018-05-20 15:30:49 pid:13116 Workerman[start.php] has been stopped
2018-05-20 15:31:32 pid:13160 Workerman[start.php] start in DEBUG mode
2018-05-20 15:33:04 pid:13160 Workerman[start.php] stopping ...
2018-05-20 15:33:04 pid:13160 Workerman[start.php] has been stopped
2018-05-20 15:33:07 pid:13186 Workerman[start.php] start in DEBUG mode
2018-05-20 15:35:00 pid:13186 Workerman[start.php] stopping ...
2018-05-20 15:35:00 pid:13186 Workerman[start.php] has been stopped
2018-05-20 15:35:01 pid:13202 Workerman[start.php] start in DEBUG mode
2018-05-20 15:36:22 pid:13202 Workerman[start.php] stopping ...
2018-05-20 15:36:22 pid:13202 Workerman[start.php] has been stopped
2018-05-20 15:36:24 pid:13218 Workerman[start.php] start in DEBUG mode
2018-05-20 15:37:31 pid:13218 Workerman[start.php] stopping ...
2018-05-20 15:37:31 pid:13218 Workerman[start.php] has been stopped
2018-05-20 15:37:33 pid:13244 Workerman[start.php] start in DEBUG mode
2018-05-20 15:39:18 pid:13244 Workerman[start.php] stopping ...
2018-05-20 15:39:18 pid:13244 Workerman[start.php] has been stopped
2018-05-20 15:39:26 pid:13342 Workerman[start.php] start in DEBUG mode
2018-05-20 15:40:33 pid:13342 Workerman[start.php] stopping ...
2018-05-20 15:40:33 pid:13342 Workerman[start.php] has been stopped
2018-05-20 15:40:36 pid:13368 Workerman[start.php] start in DEBUG mode
2018-05-20 15:41:03 pid:13368 Workerman[start.php] stopping ...
2018-05-20 15:41:03 pid:13368 Workerman[start.php] has been stopped
2018-05-20 15:41:05 pid:13394 Workerman[start.php] start in DEBUG mode
2018-05-20 15:44:18 pid:13394 Workerman[start.php] stopping ...
2018-05-20 15:44:18 pid:13394 Workerman[start.php] has been stopped
2018-05-20 15:44:20 pid:13420 Workerman[start.php] start in DEBUG mode
2018-05-20 15:56:21 pid:13420 Workerman[start.php] stopping ...
2018-05-20 15:56:21 pid:13420 Workerman[start.php] has been stopped
2018-05-20 16:05:24 pid:13744 Workerman[start.php] start in DEBUG mode
2018-05-20 16:05:34 pid:13750 Register auth timeout (127.0.0.1). See http://wiki.workerman.net/Error4 for detail
2018-05-20 16:05:34 pid:13750 Register auth timeout (127.0.0.1). See http://wiki.workerman.net/Error4 for detail
2018-05-20 16:05:34 pid:13750 Register auth timeout (127.0.0.1). See http://wiki.workerman.net/Error4 for detail
2018-05-20 16:05:34 pid:13750 Register auth timeout (127.0.0.1). See http://wiki.workerman.net/Error4 for detail
......@@ -25,10 +25,14 @@ class Bintohex
$data = $data[1];
var_dump(['message' => $data]);
$packageLength = strlen($data);
$packageLength/=2;
echo 'length' .$packageLength.PHP_EOL;
//小于最小的头长度继续等待
if($packageLength < self::HEAD_LENGTH)
{
......@@ -46,16 +50,17 @@ class Bintohex
$hexCount = hexdec(substr($data,8,4));
if($hexCount == $packageLength)
if($packageLength >= $hexCount)
{
return $hexCount;
}else{
$tcpConnection->close();
return 0;
}
}
......
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