workerman怎麼配置wss
Workerman如何建立一個wss服務,讓客戶端可以使用wss協來連接通訊,例如在微信小程式中連接服務端。
#答案:
wss協定實際上是websocket SSL,就是在websocket協定上加入SSL層,類似https(http SSL)。
所以只需要在websocket協定的基礎上開啟SSL即可支援wss協定。 (建議學習: workerman教學)
直接用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的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

實現Workerman文件中的文件上傳與下載,需要具體程式碼範例引言:Workerman是一款高效能的PHP非同步網路通訊框架,具備簡潔、高效、易用等特點。在實際開發中,文件上傳和下載是常見的功能需求,本文將介紹如何使用Workerman框架實現文件的上傳和下載,並給出具體的程式碼範例。一、檔案上傳:檔案上傳是指將本機上的檔案傳輸至伺服器端的操作。下面是使用

如何實現Workerman文件的基本使用方法簡介:Workerman是一個高效能的PHP開發框架,它可以幫助開發者輕鬆建立高並發的網路應用程式。本文將介紹Workerman的基本使用方法,包括安裝和設定、建立服務和監聽連接埠、處理客戶端請求等。並給出相應的程式碼範例。一、安裝並設定Workerman在命令列中輸入以下命令來安裝Workerman:c

Swoole 和 Workerman 都是高效能 PHP 伺服器框架。 Swoole 以其非同步處理、出色的效能和可擴展性而聞名,適用於需要處理大量並發請求和高吞吐量的專案。 Workerman 提供了非同步和同步模式的靈活性,具有直覺的 API,更適合易用性和處理較低並發量的專案。

Workerman開發:基於UDP協議的即時視訊通話摘要:本文將介紹如何使用Workerman框架實現基於UDP協議的即時視訊通話功能。我們將深入了解UDP協議的特點,並透過程式碼範例展示如何建立一個簡單但完整的即時視訊通話應用程式。引言:在網路通訊中,即時視訊通話是一項非常重要的功能。傳統的TCP協定在實現即時性較高的視訊通話時,可能會有傳輸延遲等問題。而UDP

如何使用Workerman建立高可用性負載平衡系統,需要具體程式碼範例在現代技術領域中,隨著網路的快速發展,越來越多的網站和應用程式需要處理大量的並發請求。為了實現高可用性和高效能,負載平衡系統成為了必不可少的組件之一。本文將介紹如何使用PHP開源框架Workerman建構一個高可用性的負載平衡系統,並提供具體的程式碼範例。一、Workerman簡介Worke

如何實現Workerman文件中的反向代理功能,需要具體程式碼範例簡介:Workerman是一款高效能的PHP多進程網路通訊框架,提供了豐富的功能和強大的效能,廣泛應用於Web即時通訊、長連接服務等場景。其中,Workerman也支援反向代理功能,可實現伺服器對外提供服務時的負載平衡和靜態資源快取等功能。本篇文章將介紹如何使用Workerman實現反向代理功

如何實現Workerman文件中的定時器功能Workerman是一款強大的PHP非同步網路通訊框架,它提供了豐富的功能,其中就包括定時器功能。使用定時器可以在指定的時間間隔內執行程式碼,非常適合定時任務、輪詢等應用程式場景。接下來,我將詳細介紹如何在Workerman中實現定時器功能,並提供具體的程式碼範例。第一步:安裝Workerman首先,我們需要安裝Worker

如何實現Workerman文件中的TCP/UDP通信,需要具體程式碼範例Workerman是一款高效能的PHP非同步事件驅動框架,廣泛用於實現TCP和UDP通訊。本文將介紹如何使用Workerman實現基於TCP和UDP的通信,並提供相應的程式碼範例。一、TCP通訊創建TCP伺服器使用Workerman建立TCP伺服器十分簡單,只需寫如下程式碼:<?ph
