-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathWebsocketController.php
66 lines (58 loc) · 1.34 KB
/
WebsocketController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
namespace console\controllers;
use Workerman\Worker;
use yii\console\Controller;
/**
* Class Websocket
* @package console\controllers
* @author funson86 <[email protected]>
*/
class WebsocketController extends Controller
{
public $commands = [
'start',
'stop',
'restart',
'reload',
'status',
'connections',
];
public $command = 'start';
public $daemon;
public $gracefully;
public $query; // windows下查询状态
public function options($actionID)
{
return ['daemon', 'gracefully', 'query'];
}
public function optionAliases()
{
return [
'd' => 'daemon',
'g' => 'gracefully',
'q' => 'query',
];
}
public function init()
{
global $argv;
foreach ($argv as $value) {
in_array($value, $this->commands) && $this->command = $value;
}
}
protected function initWorker()
{
$wsWorker = new Worker("websocket://0.0.0.0:2000");
$wsWorker->count = 4;
$wsWorker->onMessage = function($connection, $data)
{
// 向客户端发送hello $data
$connection->send('hello ' . $data);
};
}
public function actionIndex()
{
$this->initWorker();
Worker::runAll();
}
}