本篇内容介绍了“Swoole WebSocket怎么开启SSL支持”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联网站建设服务商,为中小企业提供网站设计制作、做网站服务,网站设计,绵阳服务器托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联。
首先要申请SSL证书,必须为pem格式。
如图为宝塔环境所申请Let's Encrypt免费证书的所在位置:
Linux安装openssl支持:
yum install -y openssl
移到Swoole安装包目录,重新编译安装,并加入openssl支持:(相关文章:Linux下源码包安装Swoole及基本使用)
phpize ./configure --enable-openssl --with-php-config=/www/server/php/72/bin/php-config make clean make && make install
查看Swoole已经开启openssl支持:
php --ri swoole
Websocket服务器中开启SSL隧道,并配置证书路径:
ws_server.php:
set([ 'daemonize' => false, //守护进程化。 //配置SSL证书和密钥路径 'ssl_cert_file' => "/etc/letsencrypt/live/oyhdo.com/fullchain.pem", 'ssl_key_file' => "/etc/letsencrypt/live/oyhdo.com/privkey.pem" ]); //监听WebSocket连接打开事件 $ws->on('open', function ($ws, $request) { echo "client-{$request->fd} is open\n"; }); //监听WebSocket消息事件 $ws->on('message', function ($ws, $frame) { echo "Message: {$frame->data}\n"; $ws->push($frame->fd, "server: {$frame->data}"); }); //监听WebSocket连接关闭事件 $ws->on('close', function ($ws, $fd) { echo "client-{$fd} is closed\n"; }); $ws->start();
页面js中即可使用wss连接WebSocket服务器(使用与证书对应的域名):
WebSocket
启动WebSocket服务:
php ws_server.php
浏览器访问结果:(注意必须为https访问)
服务器监听结果:
“Swoole WebSocket怎么开启SSL支持”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!