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的参数了
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这个错误了
手册上有写明注意事项,自己确认下: SSL 要求workerman>=3.3.7 phpsocket.io>=1.1.1
我用的是laravel,使用composer安装的,worker的是3.5.19的,composer.json 里的是"workerman/phpsocket.io": "^1.1",应该是满足的,也是按官方的配置的,就莫名出现了这个问题了,然后找了一下,好像phpsocket.io这个包里面好像没有https这个类
没有https类是正常的,因为 https = http + ssl ; 你确定你代码中某个地方没有发起类似这样的调用吗? 如 new Worker("https://ip:port");
可以了,启动的时候没有用https,但是监听的时候用了https,非常感谢你
非常感谢
你代码写错了
哪里写错了?
【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';
有传了$port了,也有传了ssl的参数了
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,
)
);
我是这么写的,但是启动服务的时候看见了启动端口后,就直接报Exception: class \Protocols\Https not exist这个错误了
手册上有写明注意事项,自己确认下:
SSL 要求workerman>=3.3.7
phpsocket.io>=1.1.1
我用的是laravel,使用composer安装的,worker的是3.5.19的,composer.json 里的是"workerman/phpsocket.io": "^1.1",应该是满足的,也是按官方的配置的,就莫名出现了这个问题了,然后找了一下,好像phpsocket.io这个包里面好像没有https这个类
没有https类是正常的,因为 https = http + ssl ; 你确定你代码中某个地方没有发起类似这样的调用吗? 如 new Worker("https://ip:port");
可以了,启动的时候没有用https,但是监听的时候用了https,非常感谢你
非常感谢