gatewayworker的環境搭建看我之前的文章
首先,執行start_for_win.bat啟動服務
接著配置start_gateway.php檔案,確保websocket通訊
new gateway("websocket:");
後端配置好後,用前端連線
直接上前端**
如果一切正常的話,控制台執行結果如下
前後端實現正常通訊
接下來實現後端發訊息給前段
新建控worker製器
php think make:controller index/worker
引入gatewayclient
<?php
use think\controller;
use think\request;
// gatewayclient 3.0.0版本以後加了命名空間
use gatewayclient\gateway;
/** * === 指定registeraddress表明與哪個gatewayworker(集群)通訊。===
* gatewayworker裡用register服務來區分集群,即乙個gatewayworker(集群)只有乙個register服務,
* gatewayclient要與之通訊必須知道這個register服務位址才能通訊,這個位址格式為 ip:埠 ,
* 其中ip為register服務執行的ip(如果gatewayworker是單機部署則ip就是執行gatewayworker的伺服器ip),
* 埠是對應ip的伺服器上start_register.php檔案中監聽的埠,也就是gatewayworker啟動時看到的register的埠。
* gatewayclient要想推送資料給客戶端,必須知道客戶端位於哪個gatewayworker(集群),
* 然後去連這個gatewayworker(集群)register服務的 ip:埠,才能與對應gatewayworker(集群)通訊。
* 這個 ip:埠 在gatewayclient一側使用 gateway::$registeraddress 來指定。
* * === 如果gatewayclient和gatewayworker不在同一臺伺服器需要以下步驟 ===
* 1、需要設定start_gateway.php中的lanip為實際的本機內網ip(如不在乙個區域網也可以設定成外網ip),設定完後要重啟gatewayworker
* 2、gatewayclient這裡的gateway::$registeraddress的ip填寫填寫上面步驟1lanip所指定的ip,埠
* 3、需要開啟gatewayworker所在伺服器的防火牆,讓以下埠可以被gatewayclient所在伺服器訪問,
* 埠包括rgister服務的埠以及start_gateway.php中lanip與startport指定的幾個埠
* * === 如果gatewayclient和gatewayworker在同一臺伺服器 ===
* gatewayclient和register服務都在一台伺服器上,ip填寫127.0.0.1及即可,無需其它設定。
**/class worker extends controller
public function send()
}
瀏覽器輸入位址
檢視聊天室頁面
服務端向客戶端傳送成功
GatewayWorker使用mysql擴充套件
官方相關文件 網上有說在config目錄下新建乙個db.php檔案的說法,應該是舊文件,不適用新的gatewayworker。步驟 一 按照官方文件檢查伺服器是否缺少pdo和pdo mysql兩個擴充套件,如果缺少,先安裝。二 按官方文件安裝workerman mysql。路徑注意不要搞錯,根目錄是...
GatewayWorker入門 啟動與停止
注意workerman啟動停止等命令都是在命令列中完成的。要啟動workerman,首先需要有乙個啟動入口檔案,裡面定義了服務監聽的埠及協議。這裡以workerman chat為例,它的啟動入口為start.php。以debug 除錯 方式啟動 php start.php start 以daemon...
GatewayWorker 前端呼叫介面除錯不通
建立wss服務 參考方法一 直接用workerman開啟ssl require once dir workerman autoloader.php use workerman worker 證書最好是申請的證書 context array ssl array 請使用絕對路徑 local cert 磁...