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

溫馨提示×

溫馨提示×

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

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

workerman配置wss的方法

發布時間:2021-01-08 16:10:03 來源:億速云 閱讀:621 作者:小新 欄目:編程語言

這篇文章主要介紹workerman配置wss的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Workerman如何創建一個wss服務,使得客戶端可以用過wss協來連接通訊,比如在微信小程序中連接服務端。

答:

wss協議實際是websocket+SSL,就是在websocket協議上加入SSL層,類似https(http+SSL)。

所以只需要在websocket協議的基礎上開啟SSL即可支持wss協議。        

直接用Workerman開啟SSL

準備工作:

1、Workerman版本不小于3.3.7

2、PHP安裝了openssl擴展

3、已經申請了證書(pem/crt文件及key文件)放在磁盤任意目錄

代碼:

<?php
require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Worker;

// 證書最好是申請的證書
$context = array(
    // 更多ssl選項請參考手冊 http://php.net/manual/zh/context.ssl.php
    'ssl' => array(
        // 請使用絕對路徑
        'local_cert'                 => '磁盤路徑/server.pem', // 也可以是crt文件
        'local_pk'                   => '磁盤路徑/server.key',
        'verify_peer'                => false,
        // 'allow_self_signed' => true, //如果是自簽名證書需要開啟此選項
    )
);
// 這里設置的是websocket協議(端口任意,但是需要保證沒被其它程序占用)
$worker = new Worker('websocket://0.0.0.0:443', $context);
// 設置transport開啟ssl,websocket+ssl即wss
$worker->transport = 'ssl';
$worker->onMessage = function($con, $msg) {
    $con->send('ok');
};

Worker::runAll();

通過以上的代碼,Workerman就監聽了wss協議,客戶端就可以通過wss協議來連接workerman實現安全即時通訊了。

測試

打開chrome瀏覽器,按F12打開調試控制臺,在Console一欄輸入(或者把下面代碼放入到html頁面用js運行)

// 證書是會檢查域名的,請使用域名連接
ws = new WebSocket("wss://域名");
ws.onopen = function() {
    alert("連接成功");
    ws.send('tom');
    alert("給服務端發送一個字符串:tom");
};
    ws.onmessage = function(e) {
    alert("收到服務端的消息:" + e.data);
    };

注意:

1、如果無法啟動,則一般是443端口被占用,請改成其它端口,注意改成其它端口后客戶端連接時需要帶上端口號,客戶端連接時地址類似wss://domain.com:xxx ,xxx為端口號。如果必須使用443端口請使用方法二代理的方式實現wss。

2、wss端口只能通過wss協議訪問,ws無法訪問wss端口。

3、證書一般是與域名綁定的,所以測試的時候客戶端請使用域名連接,不要使用ip去連。

4、如果出現無法訪問的情況,請檢查服務器防火墻。

5、此方法要求PHP版本>=5.6,因為微信小程序要求tls1.2,而PHP5.6以下版本不支持tls1.2。

以上是“workerman配置wss的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

榕江县| 苍南县| 晋江市| 祁门县| 渭南市| 朝阳市| 宁乡县| 监利县| 禄丰县| 红原县| 施甸县| 会同县| 长宁区| 崇礼县| 桃园市| 八宿县| 星子县| 饶河县| 玛曲县| 龙海市| 丹棱县| 花莲县| 左云县| 抚宁县| 客服| 子洲县| 当雄县| 丁青县| 团风县| 鄱阳县| 沧州市| 井研县| 新巴尔虎左旗| 海宁市| 合江县| 封丘县| 景谷| 丰县| 旬邑县| 鹤岗市| 卢氏县|