創(chuàng)建的wss服務,報這個錯誤,中間有個代理服務器。不知道是哪里出了問題嗎,求大神指教一下,感激不盡。
描述比較粗糙,具體也不好說,只能根據(jù)你的題示,分享一些這里可能要注意的細節(jié):
1、確保SSL證書已經(jīng)準備OK
2、SSL證書首先是和域名掛鉤的,不要用IP:PORT;
3、前后端協(xié)議以及端口要一致;
4、代理服務器代理了SSL? 是的話,workerman那邊不要設置SSL
5、另外搜社區(qū)類似問題很多以及看手冊:?http://doc.workerman.net/faq/secure-websocket-server.html
以為你使用了代理了呢,沒有代理的話,workerman的 $worker->transport = 'ssl' 開啟了嗎?
你截圖剛好看不到 proto 字段,這個字段就能反映出來。
可是我現(xiàn)在給你看的這個是阿里云的,沒有使用代理服務器的測試站點。正式環(huán)境之前測試過了。不行,后面會考慮到你現(xiàn)在說的這個問題的。現(xiàn)在我這個測試站點,也是報這個錯誤,是為什么呢?而我現(xiàn)在主要是找不到錯誤的原因,就像是無頭蒼蠅一樣。唉、求大神你帶帶我啊
@614:中間有代理服務器強制跳轉到https,在代理服務器上配置了ssl,在代碼中就不要$worker->transport = 'ssl';了是不是?除此之外還有沒有其他需要注意或者是弄其他的什么呢?
[attach]1507[/attach]
[attach]1506[/attach]
[attach]1505[/attach]
這個測試環(huán)境沒有使用代理。但是也報相同的錯誤。
這個設置了啊,我那邊配置的https,然后這邊有一個判斷。stripos($this->root_path, 'https') === 0這樣子判斷是https協(xié)議,然后$this->is_ssl = true;后面判斷如果成立$this->workermanEvent->is_ssl,然后設置$ws_worker->transport = 'ssl';這樣子的邏輯。
總體來說就是哪里配置錯誤了或者沒配置好。你可以弄個簡單demo按照來做,有問題再把demo的配置 代碼都貼出來。如果有用到nginx代理,nginx代理貼出來。貼問題的時候把用的手冊哪個方法都貼出來。
?
你這個項目封裝了一層,沒辦法確定你封裝的有沒有問題,是否導致漏了配置。
我剛才貼的圖就是簡單的demo,報 WebSocket connection to 'wss://www.firebox.vip:2347/' failed: Error in connection establishment: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH求教這又是什么意思什么錯誤???
@5146: 幫你google到一篇文章,看了下,里面分好幾種情況,需要點兒英文功底,你先試試看:
https://www.deskdecode.com/err_ssl_version_or_cipher_mismatch/
你這個項目封裝了一層,不能確認是不是封裝導致了漏掉了某些配置,你先不要用你的項目。
http://doc.workerman.net/faq/secure-websocket-server.html
拷貝手冊里的例子第一種或者第二種方法先運行起來,有問題在群里貼出所有代碼和配置。
[attach]1521[/attach]
[attach]1522[/attach]
[attach]1520[/attach]
?
怎么感覺你機器上有多個版本的PHP呢,不管是幾個,你自己確認下,也不管是幾個,每一個擴展都對應相應版本的PHP,總體思路是這樣的:
假如使用的是 /path/to/php ,那么
@614:但是我沒有找到這個openssl.so.文件,php.ini里也沒有開啟這個擴展,我的測試環(huán)境也是這樣的,但是測試環(huán)境可以用,沒問題,就正式環(huán)境搞不定了,中間有個代理服務器我就很麻木了。
@5146: /path/to/php -m | grep openssl 如果輸出了一個openssl, 并且同時也沒有報告任何的warning, 則代表openssl擴展成功安裝。
[attach]1537[/attach]
還有就是為什么我守護進程啟動的話就提示選項不存在呢。
@5146: 你這么一問:
1、我建議你得好好看手冊,效率會大大提高呢。
2、改代碼必須重啟workerman, 當然有時候只需 reload , 具體為啥看手冊。