ThinkPHP6 Workerman 配置websocket支持wss

ThinkPHP6 对Workerman进行了二次封装,通过composer安装workerman之后,二次封装的workerman的扩展抽象类位于vendor\topthink\think-worker\src\Server.php

通过这个抽象类可以看到,workerman的配置参数可以通过继承TP6 Server抽象类属性来设置。

要在TP6通过workerman实现websocket并启用wss://协议很简单,在websocket实例类里面,通过属性设置一下ssl配置文件路径 和 transport。

下面是demo代码片段:

/**
* 你我信SSL证书
* https://www.niwoxin.com
* 演示代码片段
*/
protected $socket = 'websocket://0.0.0.0:2346'; //监听协议、地址、和端口
protected $context = [
    'ssl' => [
        'local_cert' => 'somepath/sslcertfile.crt', //证书文件的存放路径(请改成自己的路径)
        'local_pk' => 'somepath/sslkeyfile.key', //证书私钥的存放路径(请改成自己的路径)
        'verify_peer' => false,
    ],
];
protected $option = [
    'transport' => 'ssl',   //设置transport开启ssl,启用wss://
];

启动websocket,访问 https://[IP或域名]:[端口] ,可以看到Workerman运行的界面就好了。