[請益] https和wss是否有“關聯性”?
我最近想寫一個Websocket程式
而我的主機已有買SSL憑證
亦即網站是可以用https瀏覽的
而且是GeoTrust Inc.發行的憑證,並非自己寫的憑證
但是我在Google chrome要試用Websocket時他跟我說https的網站只能使用「wss://」開
頭的協定
那麼我想請問一下我是否要再買另外一個憑證才能使用「wss://」協定?
假設我的https網址是「https://example.com」
那「wss://example.com」照理來講是不是應該也能用?
也就是買了https協定wss協定也就可以用?
因為我用同一個網域名稱但把https改成wss之後就跟我說無法連線了
所以想問https和wss是否是互通、有關聯性的?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.7.20
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1512185949.A.877.html
※ 編輯: red0whale (114.44.7.20), 12/02/2017 11:40:13
→
12/02 11:50,
7年前
, 1F
12/02 11:50, 1F
→
12/02 11:51,
7年前
, 2F
12/02 11:51, 2F
請問我要怎麼用wss連線Websocket?
一般的socket_create和socket_bind等函數應該沒辦法連wss吧…
我上網找了一下有個stream_context_set_option需要設定
但是他好像需要.pem檔和.key檔,這個.pem檔和.key檔是什麼?還有我要去哪裡產生.pem
檔和.key檔呢?
看來要連線wss是一件蠻困難的事…
※ 編輯: red0whale (114.44.7.20), 12/02/2017 12:45:05
→
12/02 13:00,
7年前
, 3F
12/02 13:00, 3F
→
12/02 13:00,
7年前
, 4F
12/02 13:00, 4F
→
12/02 13:01,
7年前
, 5F
12/02 13:01, 5F
您好
我不太清楚您所謂server端還是client端是指什麼
不過我只知道我用Chrome是可以瀏覽https的,也就是應該有裝好憑證
====
https://github.com/vakata/websocket
以上是我在Github上看到的可以用wss連線到Websocket的程式
只是我不曉得該怎麼去使用它
因為它還需要PEM encoded public 、 private keys和PEM certificate的密碼才能連線w
ss
然而我是承租外面的虛擬主機,並且請主機商幫忙安裝憑證的
所以我不知道那些什麼憑證的到底需要填什麼
請讓我知道這個「$cert」和「$pass」的參數必須填什麼才可以連線wss
謝謝
另外,附上我的程式和錯誤訊息給您:
《index.php》
<?php
require "src/Base.php";
require "src/Client.php";
require "src/Server.php";
require "src/WebSocketException.php";
// this handler will forward each message to all clients (except the sender)
$server = new \vakata\websocket\Server('wss://我已安裝憑證的網域:8080','./serv
er.pem');
$server->onMessage(function ($sender, $message, $server) {
foreach ($server->getClients() as $client) {
if ((int)$sender['socket'] !== (int)$client['socket']) {
$server->send($client['socket'], $message);
}
}
});
$server->run();
?>
《錯誤訊息》
[02-Dec-2017 14:11:06 Asia/Taipei] PHP Fatal error: Uncaught exception 'vakata
\websocket\WebSocketException' with message 'Could not create server' in /publ
ic_html/websocket-master/src/Server.php:51
Stack trace:
#0 /public_html/websocket-master/index.php(7): vakata\websocket\Server->__cons
truct('wss://...', './server.pem')
#1 {main}
thrown in /public_html/websocket-master/src/Server.php on line 51
《server.pem》(中間恕刪)
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
※ 編輯: red0whale (114.44.7.20), 12/02/2017 14:19:10
推
12/02 15:05,
7年前
, 6F
12/02 15:05, 6F
推
12/02 15:17,
7年前
, 7F
12/02 15:17, 7F
推
12/02 15:58,
7年前
, 8F
12/02 15:58, 8F
→
12/02 16:24,
7年前
, 9F
12/02 16:24, 9F
→
12/02 16:25,
7年前
, 10F
12/02 16:25, 10F
好吧…
我不懂那是什麼
我以為那只是一堆文字而已
話說中間都刪掉了也是有人能全部破解嗎?
※ 編輯: red0whale (114.44.7.20), 12/02/2017 19:02:20
請問有人能告訴我怎麼讓wss://開頭的Websocket可以連線?
我只是想做一個比較不會消耗伺服器資源的聊天室而已
但是由於我的網站是用https,而瀏覽器規定https的網站一定要使用wss://開頭的Websoc
ket
所以我不得不用wss
如果https可以使用ws://開頭的Websocket,我也不必這麼大費周章找遍所有網頁了(因為
連線ws://開頭的Websocket我知道怎麼做)
現在只差如何成功連線wss://開頭的Websocket
請各位一定要協助我
也希望各位提供推薦的可使用wss連線的Websocket聊天室程式
謝謝
※ 編輯: red0whale (114.44.7.20), 12/02/2017 22:25:37
→
12/02 22:46,
7年前
, 11F
12/02 22:46, 11F
→
12/02 22:47,
7年前
, 12F
12/02 22:47, 12F
→
12/02 22:47,
7年前
, 13F
12/02 22:47, 13F
→
12/02 22:48,
7年前
, 14F
12/02 22:48, 14F
→
12/02 22:49,
7年前
, 15F
12/02 22:49, 15F
→
12/02 22:51,
7年前
, 16F
12/02 22:51, 16F
謝謝,不過我試了.pem之後還是無法成功
我是用下面這個來作為我的測試版聊天室:
https://github.com/Flynsarmy/PHPWebSocket-Chat
用8000和8080埠的ws://協定在http://瀏覽的情況下都能連線成功且可以聊天(前提是要
先執行server.php,而且server.php的「wsStartServer」的IP和Port都要改成自己的網
站)
但問題是我必須讓我的網站以https方式呈現
而瀏覽器要求https的網站只能以wss://開頭的Websocket連線
問題就是要怎麼讓「wss://...」也能連線成功
也就是要怎麼用PHP create「wss://...」的Websocket...
我試過千百遍都沒用,瀏覽器一直顯示:
Websocket connection to 'wss://...:8080/' failed: Error in connection establis
hment: net::ERR_CONNECTION_TIMED_OUT
好頭疼…
我好想開始放棄Websocket改用以往傳統的Comet長輪詢了…
→
12/02 22:55,
7年前
, 17F
12/02 22:55, 17F
沒有
※ 編輯: red0whale (114.44.7.20), 12/02/2017 23:08:02
→
12/02 22:56,
7年前
, 18F
12/02 22:56, 18F
→
12/02 22:56,
7年前
, 19F
12/02 22:56, 19F
問題是即使某個Port沒被佔用它那個wss Websocket還是沒有創建成功呀
我的問題點是怎麼用PHP創立「wss://...」開頭的Websocket...
※ 編輯: red0whale (114.44.7.20), 12/02/2017 23:11:06
→
12/02 23:12,
7年前
, 20F
12/02 23:12, 20F
→
12/02 23:12,
7年前
, 21F
12/02 23:12, 21F
沒用,error_log跟我說connection refused
※ 編輯: red0whale (114.44.7.20), 12/02/2017 23:17:03
→
12/02 23:48,
7年前
, 22F
12/02 23:48, 22F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章