ibagmen adlı üyeden alıntı: mesajı görüntüle
Merhaba;

sunucumda ssller lets encrpyt ile otomatik oluşturuluyor.

Websocket bağlantısı yapıyorum orada sıkıntı yok ancak javascript ile WSS protokulu ile çağırdımda ( çünkü sayfa https ) ssl hatası veriyor.

Kodlar aşağıda yardımcı olabilirmisiniz ?

Socket.php
    <script>  
    function showMessage(messageHTML) {
        $('#chat-box').append(messageHTML);
    }

    $(document).ready(function(){
        var websocket = new WebSocket("wss://site.com:8090/2/php-socket.php");
        websocket.onopen = function(event) {
            showMessage("<div class='chat-connection-ack'>Connection is established!</div>");        
        }
        websocket.onmessage = function(event) {
            var Data = JSON.parse(event.data);
            showMessage("<div class='"+Data.message_type+"'>"+Data.message+"</div>");
            $('#chat-message').val('');
        };
        
        websocket.onerror = function(event){
            showMessage("<div class='error'>Problem due to some Error</div>");
        };
        websocket.onclose = function(event){
            showMessage("<div class='chat-connection-ack'>Connection Closed</div>");
        };
        
        $('#frmChat').on("submit",function(event){
            event.preventDefault();
            $('#chat-user').attr("type","hidden");        
            var messageJSON = {
                chat_user: $('#chat-user').val(),
                chat_message: $('#chat-message').val()
            };
            websocket.send(JSON.stringify(messageJSON));
        });
    });




    </script>
<?php
define('HOST_NAME',"localhost");
define('PORT',"8090");
$null = NULL;

require_once("class.chathandler.php");
$chatHandler = new ChatHandler();

$socketResource = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socketResource, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socketResource, 0, PORT);
socket_listen($socketResource);

$clientSocketArray = array($socketResource);
while (true) {
    $newSocketArray = $clientSocketArray;
    socket_select($newSocketArray, $null, $null, 0, 10);
    
    if (in_array($socketResource, $newSocketArray)) {
        $newSocket = socket_accept($socketResource);
        $clientSocketArray[] = $newSocket;
        
        $header = socket_read($newSocket, 1024);
        $chatHandler->doHandshake($header, $newSocket, HOST_NAME, PORT);
        
        socket_getpeername($newSocket, $client_ip_address);
        $connectionACK = $chatHandler->newConnectionACK($client_ip_address);
        
        $chatHandler->send($connectionACK);
        
        $newSocketIndex = array_search($socketResource, $newSocketArray);
        unset($newSocketArray[$newSocketIndex]);
    }
    
    foreach ($newSocketArray as $newSocketArrayResource) {    
        while(socket_recv($newSocketArrayResource, $socketData, 1024, 0) >= 1){
            $socketMessage = $chatHandler->unseal($socketData);
            $messageObj = json_decode($socketMessage);
            
            $chat_box_message = $chatHandler->createChatBoxMessage($messageObj->chat_user, $messageObj->chat_message);
            $chatHandler->send($chat_box_message);
            break 2;
        }
        
        $socketData = @socket_read($newSocketArrayResource, 1024, PHP_NORMAL_READ);
        if ($socketData === false) {
            socket_getpeername($newSocketArrayResource, $client_ip_address);
            $connectionACK = $chatHandler->connectionDisconnectACK($client_ip_address);
            $chatHandler->send($connectionACK);
            $newSocketIndex = array_search($newSocketArrayResource, $clientSocketArray);
            unset($clientSocketArray[$newSocketIndex]);            
        }
    }
}
socket_close($socketResource);




Yokmu arkadaşlar çözümü olan?
8090 portunda SSL kurulu mu? Wss yazınca direk socket sunucusu ve portu SSL'e geçmiş olmuyor. Socket'in olduğu porta da SSL kurulmalı. Örnek veriyorum;

https://siteadi.com
https://socket.siteadi.com:8433 gibi olması lazım.


Ekleme: Proxy'nin de işe yaradığını söylemişler ama ben denemedim;

http://nginx.org/en/docs/http/websocket.html
https://www.freecodecamp.org/news/ho...-d0be0996c556/