## 概述
### 1、本服務使用的GatewayWorke,請點擊參考手冊查看詳情( );
### 2、服務端在vendor/GatewayWorker_linux;
### 3、具體實現步驟
1、網站頁面建立與GatewayWorker的websocket連接
2、GatewayWorker發現有頁面發起連接時,將對應連接的client\_id發給網站頁面
3、網站頁面收到client\_id后觸發一個ajax請求(假設是`bind.php`)將client\_id發到mvc后端
4、mvc后端`bind.php`收到client\_id后利用GatewayClient調用`Gateway::bindUid($client_id, $uid)`將client\_id與當前 uid(用戶id或者客戶端唯一標識)綁定。如果有群組、群發功能,也可以利用`Gateway::joinGroup($client_id, $group_id)`將client\_id加入到對應分組
5、頁面發起的所有請求都直接post/get到mvc框架統一處理,包括發送消息
6、mvc框架處理業務過程中需要向某個uid或者某個群組發送數據時,直接調用[GatewayClient](https://github.com/walkor/GatewayClient)的接口`Gateway::sendToUid Gateway::sendToGroup` 等發送即可
### 4、目錄結構
~~~
.
├── Applications // 這里是所有開發者應用項目
│?? └── YourApp // 其中一個項目目錄,目錄名可以自定義
│?? ├── Events.php // 開發者只需要關注這個文件
│?? ├── start_gateway.php // gateway進程啟動腳本,包括端口號等設置
│?? ├── start_businessworker.php // businessWorker進程啟動腳本
│?? └── start_register.php // 注冊服務啟動腳本
│
├── start.php // 全局啟動腳本,此腳本會依次加載Applications/項目/start_*.php啟動腳本
│
└── vendor // GatewayWorker框架和Workerman框架源碼目錄,此目錄開發者不用關心
~~~
### 5、啟動與停止
#### 啟動
1、以debug(調試)方式啟動
`php start.php start`
2、以daemon(守護進程)方式啟動
`php start.php start -d`
#### 停止
`php start.php stop`
#### 重啟
`php start.php restart`
#### 平滑重啟
`php start.php reload`
#### 查看狀態
`php start.php status`
- 序言
- 基礎
- 開發規范
- 目錄結構
- 下載安裝
- 快速開發
- 創建一個表格
- 設置頁面標題
- 設置頁面提示
- 創建右側按鈕
- 創建頂部按鈕
- 隱藏和替換按鈕
- 隱藏第一列多選框
- 一次添加多行列表
- 添加一列
- 字段類型
- status
- text
- text.edit
- picture
- callback
- img_url
- pictures
- link
- files
- switch(2.0+)
- 設置表格主鍵
- 創建一個頂部搜索
- 調用js
- 創建快捷搜索
- 添加數量索引
- 添加表頭排序(2.0.0)
- 添加一個右側彈窗按鈕
- 創建一個表單
- 表單字段說明
- 文本框
- 密碼框
- 單選框
- 復選框
- 單圖上傳
- 多圖上傳
- 下拉框
- 多行文本
- 隱藏域
- 單文件上傳
- 多文件上傳
- 富文本編輯器
- 靜態文本
- 排序
- 數字輸入框
- 選擇圖標
- 關聯聯動
- 多級聯動
- selectAjax(2.0+)
- 使用自定義JS文件
- 使用自定義CSS文件
- 公用函數
- 框架common
- is_signin
- data_auth_sign
- parse_attr
- parse_sql
- get_client_ip
- get_file_url
- get_files_url
- get_thumb
- hook
- p
- get_location
- format_linkage
- format_bytes
- action_log
- parse_action
- execute_action
- role_auth
- module_config
- addons_menage
- addons_config
- get_addons_class
- addons_action_exists
- addons_model_exists
- addons_validate_exists
- get_addons_model
- get_model_name
- get_model_title
- get_model_type
- get_model_table
- is_default_field
- table_exist
- implode_attr
- parse_array
- parse_name
- parse_config
- addons_parse_config
- addons_action
- get_adminname
- get_nickname
- set_config_value
- get_file_name
- format_time
- get_order_sn
- get_msectime
- timeToHIS
- getMobileType
- curl_post
- friend_date
- str2sub
- createLinkagesToken
- get_level_data
- get_level_pid
- get_level_key_data
- clear_js
- get_sex
- get_age
- user_is_signin
- user_role_auth
- filter
- filter_data
- time_tran
- search_time
- time2string
- check_password
- check_mobile
- push
- common模塊
- 模塊開發
- 創建模塊信息
- 安裝模塊
- 模塊配置
- 控制器
- 創建菜單
- 第一個控制器
- 方法參考
- 導出模塊
- 插件開發
- 插件結構
- 插件信息
- 管理界面的字段信息
- 新增或編輯字段
- 插件鉤子
- 數據庫表前綴
- 插件配置
- 插件開發
- 控制器
- 模型
- 驗證器
- 方法參考
- 自定義表
- 接口開發
- 新增接口
- 請求參數/返回參數
- 業務流程
- 應用管理
- MOCK接口
- 其他說明
- Redis使用說明
- 圖片上傳說明
- CMS模塊說明
- 函數參考
- 商城模塊說明
- 購物流程
- 直接購買提交購物訂單
- 購物車流程
- 商品添加到購物車
- 購物車中商品數量變化
- 購物車提交訂單
- 單客服使用說明
- 服務部署
- 客戶端調用
- 后臺客服端使用
- 更新說明(2.0+)