Swoole WebSocket开启SSL支持 使用wss连接
前期准备
ssl证书: crt格式 和key格式
环境:PHP扩展swoole开启openssl
php 代码示例:
swoole端口9501 ,开启ssl,链接为wss://ip:9501
<?php
//创建websocket服务器对象,监听0.0.0.0:9501端口,开启SSL隧道,后面参数不可缺少。
$ws = new swoole_websocket_server("0.0.0.0", 9501, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
//配置参数
$ws ->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();
为该服务器192.168.1.1配置一个dns域名,解析test.wanbo.com
则在前端页面调用使用链接为 wss://test.wanbo.com:9501 即可
参考:https://my.oschina.net/u/125977/blog/1816423