国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 服務(wù)器 > Web服務(wù)器 > 正文

Yii2結(jié)合Workerman的websocket示例詳解

2024-09-01 13:28:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要給大家介紹了關(guān)于Yii2結(jié)合Workerman的websocket的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要給大家介紹了關(guān)于Yii2結(jié)合Workerman的websocket的相關(guān)內(nèi)容,兩者都是好東西,我就想著能不能結(jié)合起來(lái),這樣Yii2出現(xiàn)瓶頸的時(shí)候有些業(yè)務(wù)就可以平滑地遷移到Workerman中。下面話不多說(shuō)了,來(lái)隨著小編來(lái)一起看看詳細(xì)的介紹吧

步驟如下

1、安裝workerman

composer require workerman/workerman

2、啟動(dòng)workerman

創(chuàng)建commands/WorkermanWebSocketController.php文件

創(chuàng)建actionIndex()函數(shù),用來(lái)啟動(dòng),代碼如下

public function actionIndex(){ if ('start' == $this->send) { try {  $this->start($this->daemon); } catch (/Exception $e) {  $this->stderr($e->getMessage() . "/n", Console::FG_RED); } } else if ('stop' == $this->send) { $this->stop(); } else if ('restart' == $this->send) { $this->restart(); } else if ('reload' == $this->send) { $this->reload(); } else if ('status' == $this->send) { $this->status(); } else if ('connections' == $this->send) { $this->connections(); }}

添加初始化模塊

public function initWorker(){ $ip = isset($this->config['ip']) ? $this->config['ip'] : $this->ip; $port = isset($this->config['port']) ? $this->config['port'] : $this->port; $wsWorker = new Worker("websocket://{$ip}:{$port}"); // 4 processes $wsWorker->count = 4; // Emitted when new connection come $wsWorker->onConnect = function ($connection) { echo "New connection/n"; }; // Emitted when data received $wsWorker->onMessage = function ($connection, $data) { // Send hello $data $connection->send('hello ' . $data); }; // Emitted when connection closed $wsWorker->onClose = function ($connection) { echo "Connection closed/n"; };}

添加啟動(dòng)模塊

/** * workman websocket start */public function start(){ $this->initWorker(); // 重置參數(shù)以匹配Worker global $argv; $argv[0] = $argv[1]; $argv[1] = 'start'; if ($this->daemon) { $argv[2] = '-d'; } // Run worker Worker::runAll();}

添加停止模塊

/** * workman websocket stop */public function stop(){ $this->initWorker(); // 重置參數(shù)以匹配Worker global $argv; $argv[0] = $argv[1]; $argv[1] = 'stop'; if ($this->gracefully) { $argv[2] = '-g'; } // Run worker Worker::runAll();}

添加重啟模塊

 /** * workman websocket restart */public function restart(){ $this->initWorker(); // 重置參數(shù)以匹配Worker global $argv; $argv[0] = $argv[1]; $argv[1] = 'restart'; if ($this->daemon) { $argv[2] = '-d'; } if ($this->gracefully) { $argv[2] = '-g'; } // Run worker Worker::runAll();}

添加重載模塊

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔东| 永德县| 琼结县| 唐山市| 陈巴尔虎旗| 德阳市| 武强县| 潼南县| 澎湖县| 孝义市| 奉化市| 平和县| 星座| 陈巴尔虎旗| 南汇区| 永新县| 华安县| 吴堡县| 桃园市| 德庆县| 土默特左旗| 共和县| 当阳市| 永靖县| 锡林郭勒盟| 炎陵县| 阿拉尔市| 盘锦市| 柘城县| 墨脱县| 城口县| 如东县| 深泽县| 孟连| 金沙县| 司法| 六安市| 泸州市| 雷山县| 祥云县| 仲巴县|