WebSocket 配置 wss

swoole使用webSocket建立wss连接 | 参考 | swoole 参考

需要
  • wss应用,发起webSocket连接页面必须使用https
  • swoole 开启 openssl
  • 参看配置选项 ssl_cert_file
前端页面


    
        
        
        

        ws

        
        
    
    
        
发送窗口:
接收窗口:
后台代码
push() 向某个客户端(使用$fd标识符)发送消息
 *      4. 服务器端可以设置 onHandShake 事件回调来手工处理WebSocket握手
 *
 * WebSocket 服务器启用 wss加密
 *      1. 需要配置 https
 *      2. swoole 需要开启 openssl选项
 */

// 配置选项
$config = array(
    'ssl_key_file'  => '/xxx/xxxx/xxxx/xxxxxx.key',
    'ssl_cert_file' => '/xxx/xxxx/xxxx/xxxxxx.pem',
);

// 创建webSocket服务对象 监听 0.0.0.0:9001 端口 这里参数二和参数三很重要
$ws = new swoole_websocket_server("0.0.0.0", 9002, SWOOLE_BASE, SWOOLE_SOCK_TCP | SWOOLE_SSL);

$ws->set($config);

// 监听WebSocket连接打开事件
$ws->on('open', function($ws, $request){
    var_dump($request->fd, $request->get, $request->server);
    $ws->push($request->fd, "hello, welcome\n");
});

// 监听WebSocket消息事件
$ws->on('message', function($ws, $frame){
    echo "Message: {$frame->data}\n";
    $ws->push($frame->fd, $frame->data);
});

// 监听WebSocket连接关闭事件
$ws->on('close', function ($ws, $fd){
    echo "client-{$fd} is closed\n";
});

$ws->start();
注意
  • 服务器配置防火墙 打开指定端口
  • 如果使用阿里云 配置以下安全配置,开启端口
  • 配置好https等

你可能感兴趣的:(WebSocket 配置 wss)