中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swoole WebSocket怎么開啟SSL支持

發布時間:2021-09-14 17:16:04 來源:億速云 閱讀:248 作者:chen 欄目:大數據

本篇內容介紹了“Swoole WebSocket怎么開啟SSL支持”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

首先要申請SSL證書,必須為pem格式。

如圖為寶塔環境所申請Let's Encrypt免費證書的所在位置:

Swoole WebSocket怎么開啟SSL支持

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

Swoole WebSocket怎么開啟SSL支持

Websocket服務器中開啟SSL隧道,并配置證書路徑:

ws_server.php:

<?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();

頁面js中即可使用wss連接WebSocket服務器(使用與證書對應的域名):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>WebSocket</title></head><body></body><script type="text/javascript">var websocket = new WebSocket('wss://www.oyhdo.com:9501');  websocket.onopen = function (evt) { onOpen(evt) }; websocket.onclose = function (evt) { onClose(evt) }; websocket.onmessage = function (evt) { onMessage(evt) }; websocket.onerror = function (evt) { onError(evt) };  function onOpen(evt) {  console.log("Connected to WebSocket server.");   websocket.send('666');} function onClose(evt) {   console.log("Disconnected"); }function onMessage(evt) {   console.log('Retrieved data from server: ' + evt.data); } function onError(evt) {   console.log('Error occured: ' + evt.data); }</script></html>

啟動WebSocket服務:

php ws_server.php

瀏覽器訪問結果:(注意必須為https訪問)

Swoole WebSocket怎么開啟SSL支持

服務器監聽結果:

Swoole WebSocket怎么開啟SSL支持

“Swoole WebSocket怎么開啟SSL支持”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固始县| 荃湾区| 昌吉市| 芜湖县| 漳浦县| 普陀区| 卢湾区| 阿巴嘎旗| 天台县| 西城区| 盐亭县| 鹤山市| 阿鲁科尔沁旗| 凯里市| 法库县| 鄄城县| 科技| 将乐县| 阳江市| 深水埗区| 长治市| 阳朔县| 天等县| 札达县| 通海县| 莎车县| 油尖旺区| 吉隆县| 南郑县| 陇南市| 通江县| 青阳县| 密云县| 普定县| 确山县| 武定县| 长岛县| 普兰县| 淅川县| 府谷县| 肃宁县|