Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Websocket server z SSL
k00sl
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 20.04.2009

Ostrzeżenie: (0%)
-----


Witam,

Posiadam problem z nawiązaniem bezpiecznego połączenia SSL za pomocą websocketów. Dokładniej mówiąc przeglądarka nie chce połączyć się za pomocą protokołu wss:// z serwerem wykonanym w PHP. Natomiast klient w PHP łączy się z nim bezproblemowo ( Dla jasności posiadam zainstalowany OpenSSL wraz z modułem. ). Pojęcia nie mam, dlaczego tylko przeglądarka ma z tym problem. Korzystałem z gotowców dostępnych w sieci, lecz z każdym to samo. Osoby z takim samym kłopotem rozwiązały go za pomocą nginx'a lub stunnela, jednak nie zapobiega to nasłuchiwaniu lokalnych połączeń w miejscu gdzie stoi serwer, a bardzo zależy mi na tym, aby było to w pełni bezpieczne połączenie. Oczywiście nie korzystając z SSL wszystko działa jak należy.

Dostępne wykorzystane gotowce:

https://github.com/spatzle/phpws
https://github.com/Devristo/phpws


Będę wdzięczny za udzielenie mi porady, być może ktoś z Was miał z tym styczność.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zaszczyk
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


Uczę się websocketów na tym serwerze: https://github.com/Flynsarmy/PHPWebSocket-C...HPWebSocket.php. Mój client JS wygląda tak:
  1. var host = 'wss://xxx.xx:44444/';
  2. try{
  3. socket = new WebSocket(host);
  4. $('#msg').append('WebSocket created - status '+socket.readyState+'<br />');
  5.  
  6. socket.onopen = function(msg){
  7. $('#msg').append("Connected - status "+this.readyState+'<br />');
  8. socket.send('jaguar');
  9. };
  10.  
  11. socket.onmessage = function(msg){
  12. console.log("Received: "+msg.data);
  13. console.log(msg);
  14. $('#msg').append(msg.data+'<br />');
  15. };
  16.  
  17. socket.onerror = function(msg) {
  18. $('#msg').append('Error '+msg.code+' '+msg.reason+'<br />');
  19. console.log(msg);
  20. };
  21.  
  22. socket.onclose = function(msg){
  23. $('#msg').append("Disconnected - status "+this.readyState+'<br />');
  24. socket.close();
  25. };
  26. }
  27. catch(ex){ console.log(ex); }


Po włączeniu serwer i odświeżeniu klienta pojawia się komunikat:
WebSocket created - status 0
Następnie po około 10 sekundach następne:
Error undefined undefined
Disconnected - status 3

I wtedy serwer informuje o tym, że klient się rozłączył. Wszystko działało perfekcyjnie dopóki połączenie było protokole ws, gdy zmieniłem na wss dzieję się tak jak opisałem. Hostingodawca mówi, że konfiguracji jest w porządku. W konfiguracji serwera websocket (PHPWebSocket-Chat), mam podane IP serwera i port 44444. Wg mnie, przy używaniu SSL, trzeba zmienić nagłówki handshake, ale nie wiem na jakie...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 12:23