worker 版本為3.5.19
phpsocketio 版本^1.1
報錯內容:
Exception: class \Protocols\Https not exist in E:\apps\company_dining_hall\vendo
r\workerman\workerman\Worker.php:2191
【https = http + ssl 】
?
錯誤姿勢:$worker = new Worker("https://ip:port");
正確姿勢:$worker = new Worker("http://ip:port");
$worker->transport = 'ssl';
我直接用的是phpsocketio,源碼是
if($port)
{
$worker = new Worker('SocketIO://0.0.0.0:'.$port, $opts);
$worker->name = 'PHPSocketIO';
if(isset($opts['ssl'])) {
$worker->transport = 'ssl';
}
$this->attach($worker);
}
有傳了$port了,也有傳了ssl的參數(shù)了
use PHPSocketIO\SocketIO;
$context = array(
'ssl' => array(
'local_cert' => '/your/path/your/server.pem',
'local_pk' => '/your/path/your/server.key',
'verify_peer' => false,
)
);
new SocketIO(2120, $context);
是的,
// 傳入ssl選項,包含證書的路徑
$context = array(
'ssl' => array(
'local_cert' => 'xxxxx',
'local_pk' => 'xxxxx',
'verify_peer' => false,
)
);
//PHPSocketIo服務
self::$senderIo = new SocketIO(3120,$context);
我是這么寫的,但是啟動服務的時候看見了啟動端口后,就直接報Exception: class \Protocols\Https not exist這個錯誤了
我用的是laravel,使用composer安裝的,worker的是3.5.19的,composer.json 里的是"workerman/phpsocket.io": "^1.1",應該是滿足的,也是按官方的配置的,就莫名出現(xiàn)了這個問題了,然后找了一下,好像phpsocket.io這個包里面好像沒有https這個類
沒有https類是正常的,因為 https = http + ssl ; 你確定你代碼中某個地方沒有發(fā)起類似這樣的調用嗎? 如 new Worker("https://ip:port");