>[danger] - 該服務依賴 Swoole 擴展,Windows下無法執行。
> - 異步 redis 需按 Swoole 官方要求安裝 hiredis 與 重新編譯 swoole,詳情:https://wiki.swoole.com/wiki/page/p-redis.html 。
> - 請安裝小于等于 [4.0.4](https://github.com/swoole/swoole-src/releases/tag/v4.0.4) 版本的 Swoole,因為高版本的 Swoole 移除了異步客戶端,如果你使用 MixPHP V2 就不需要這些了,因為 V2 使用的協程。
## WebSocket 服務
MixPHP 封裝了非常完整的 WebSocket 解決方案,開箱即用,還在源代碼中附帶了完整范例代碼。
| 類 | 調用 |
| --- | --- |
| mix\websocket\WebSocketServer | app()->createObject('name') |
## 使用場景
如: 消息推送、在線聊天、直播彈幕、棋牌游戲等。
## 優點
- 能與 Session / Token 無縫對接,實現會話機制;
- 可異步對接 Redis 的訂閱,實現通過消息隊列主動發消息至客戶端,這樣做出來的 WebSocket 服務可以做負載均衡,實現高性能;
- 可通過消息處理器進行命令路由,實現傳統MC分離的開發方式;
- 模型驗證器可在 WebSocket 的模型中使用,驗證數據的有效性與合法性,遠離臟數據、攻擊的風險;
## 開發目錄
~~~
apps/
└── websocketd
~~~
## 命令執行
~~~
mix-websocketd [入口文件] [命令] [選項]
~~~
## 范例
### 配置文件
[>> 到 GitHub 查看默認配置 <<](https://github.com/mix-php/mix/blob/v1/apps/websocketd/config/main.php)
### 控制器代碼
源代碼的范例里幾乎把全部流程都寫了,就差業務代碼了。
[>> 到 GitHub 查看 DEMO <<](https://github.com/mix-php/mix/blob/v1/apps/websocketd/commands/ServiceCommand.php)
### 進程管理
在命令行使用以下命令管理。
~~~shell
// 查看幫助
mix-websocketd -h
// 啟動
mix-websocketd service start
// 啟動(守護)
mix-websocketd service start -d
// 停止
mix-websocketd service stop
// 重啟
mix-websocketd service restart
// 狀態
mix-websocketd service status
~~~
也可使用如下 Linux 命令管理進程。
~~~shell
// 查找進程
ps -ef | grep mix-websocketd
// 結束主進程
kill <PID>
~~~
- 歡迎使用 MixPHP
- 安裝說明
- 常規安裝
- 只安裝命令行
- Apache/PHP-FPM安裝
- 開發與調試
- 開發注意事項
- 調試與錯誤
- 基礎架構
- 目錄結構
- 目錄設計
- URL訪問
- 命名空間
- 自動加載
- 入口文件
- 框架核心
- Application
- 配置
- 對象
- 組件
- 門面
- 系統服務
- 中間件
- 驗證器
- 驗證器定義
- 驗證規則
- 靜態調用
- 模型
- 日志
- 命令行
- 簡介
- 命令行開發常識
- 創建命令
- 執行與選項
- 控制臺程序
- 守護程序
- HTTP 服務
- 簡介
- 服務器
- 路由
- 請求
- 響應
- 控制器
- 視圖
- Token
- Session
- Cookie
- 文件上傳
- 圖片處理
- 分頁
- 驗證碼
- WebSocket 服務
- 簡介
- 回調函數
- 消息處理器
- 客戶端測試
- nginx代理
- 60s無消息斷線
- 多進程
- ProcessPoolTaskExecutor
- 流水線模式
- 推送模式
- 在 Supervisor 中使用
- 協程
- 簡介
- 如何開啟協程
- HTTP 協程開發
- 命令行協程開發
- 客戶端
- MySQL
- PDO
- PDOPersistent
- PDOMasterSlave
- PDOCoroutine
- Redis
- Redis
- RedisPersistent
- RedisCoroutine
- 外部工具庫
- 簡介
- think-orm
- psr-log
- 安全建議
- 常見問題
- 啟動多個 HTTP 服務器
- 連接多個數據庫
- 如何設置跨域
- mix-httpd service stop 無效
- No such file or directory
- 錯誤級別配置不生效
- 推進計劃
- 文檔歷史