無法連接swoole怎么辦?websocket無法連接swoole開啟的https服務端?
swoole中連接https問題
前段時間有伙伴咨詢一點php博主關于websocket連接HTTPS的問題,網上資料又非常雜亂,所以博主也親自嘗試了一下一些問題以及技術總結分享給大家。
服務端使用的是PHP擴展Swoole框架開發,客戶端采用JS中的websocket開發。
HTTPS解決方案如下:
1.編譯安裝swoole時記住選擇支持openssl。
cd?swoole_srcphpize?./configure?--enable-openssl?make?&&?make?install 2.如果遇到報錯configure:?error:?Cannot?find?php-config.?Please?use?--with-php-config=PATH
解決方式 :手動添加php-config路徑
./configure?--with-php-config=/usr/local/php/bin/php-config?--enable-openssl
3.最后在swoole代碼中加入證書信息:
//初始化類的時候,加上openssl參數 $serv?=?new?swoole_websocket_server(":",?8080,?SWOOLE_PROCESS,?SWOOLE_SOCK_TCP?|?SWOOLE_SSL); //配置證書文件位置 $key_dir?=?"YOUR_KEY_DIR"; $serv->set(array(?'work_num'=>1,?'ssl_cert_file'=>$key_dir.'/file.crt','ssl_key_file'=>$key_dir.'file.key'));
4.客戶端連接:
var?wsl?=?"wss://domain/path";//證書的域名?ws?=?new?WebSocket(wsl);
一定要注意客戶端連接時將ws改成wss。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦