想在webman中一起啟動一個Channel\Server進程,現(xiàn)在單獨文件(a.php)啟動是這樣:
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
// 不傳參數(shù)默認是監(jiān)聽0.0.0.0:2206
$channel_server = new Channel\Server();
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
然后 php a.php start -d
如果想在 webman 中啟動時一起啟動,寫在自定義進程的onWorkerStart 函數(shù)下面,會不會啟動多了一個進程?
例如這樣:
class myservice
{
/**
#!/usr/bin/env php
<?php
require_once __DIR__ . '/vendor/autoload.php';
new \Channel\Server('0.0.0.0', 8080);
support\App::run();
自定義進程就可以了,按照這個文檔:http://wtbis.cn/doc/webman/process.html
自定義進程我懂,但
public function onWorkerStart(Worker $worker)
{
$channel_server = new Channel\Server();
}
這樣會有兩個進程吧,1樓的朋友是理解了我的意思,只是可能 不能使用 命令行停止和重啟
不會在創(chuàng)建進程,按照你現(xiàn)在這個寫法沒得問題。
不過你這個 $channel_server = new Channel\Server(); 不會被啟動,
你最好自己class MyChannelServer extends Channel\Server { public function listen() {$this->_worker->listen();}}
自定義進程這樣寫:
public function onWorkerStart(Worker $worker)
{
$channel_server = new 命名空間MyChannelServer();
$channel_server->listen();
}