新开发发的项目用户端是公众号和小程序,小程序只支持wss链接,以下是我的开启wss的方法,以及过程中遇到的一些问题(主要是我菜)
首先需要有证书,我用的是宝塔面板申请的免费证书,宝塔申请的免费证书路径在/etc/letsencrypt/live/,新版的宝塔路径是/www/server/panel/vhost/cert,会列出来所有申请了免费证书的网站,公司服务器就不放截图了。一定要记住这个路径,后面用得到。然后是swoole需要开启openssl,我的是宝塔面板安装的swoole好像默认是开启的,查资料的时候发现有的不是默认开启的需要重新安装编译,如果需要手动编译安装可以查看比如https://qq52o.me/2700.html,https://www.php.cn/swoole/437812.html还有https://www.cnblogs.com/hodge01/p/8658296.html,任君挑选
最后是websocket控制器,这里是在下面这位大佬的代码基础上改的https://blog.csdn.net/msllws/article/details/84405127
注意!!!!以下代码被我删除了大量业务代码,配置可以直接参考,业务逻辑需要自己完善。
<?php
namespace app\index\controller;
use think\Db;
use think\swoole\Server;
class WebsocketController extends Server
{
protected $host = '0.0.0.0'; //监听所有地址
protected $port = 9501; //监听9501端口
protected $serverType = 'ssl';
protected $mode = SWOOLE_PROCESS;
protected $sockType = SWOOLE_SOCK_TCP