WebSocket Olaylar tetikleme değil

0 Cevap php

Ben HTML5/JS API kullanarak basit bir WebSocket örnek oluşturmak için çalışıyorum. Ben sunucu üzerinde iz ne dayanarak, bu soket bağlanıyor gibi görünüyor, ama olaylar yangın (Açıldığında, onMessage, OnClose, vb) hiçbiri. Ben JavaScript hata ayıklama çok iyi değilim o yüzden bir Flash geliştiricisi ve ben birisi bana yardımcı olabilir umuyorum. İşte kullanıyorum istemci tarafında kod.

<script type="text/javascript" charset="utf-8">
    function startSocket()
    {
        if("WebSocket" in window)
        {
            var ws = new WebSocket("ws://localhost:1740");

            ws.onopen = function() {
                window.alert("open!");
            }

            ws.onmessage = function(event) {
                window.alert(event.data);
            }

            ws.onclose = function() {
                window.alert("Closed");
            }   

            ws.onerror = function() {
                window.alert("trouble in paradise");
            }           
        }

    }


</script>

Ve burada benim soketli sunucu kod (Flash'tan gayet güzel çalışıyor, ama bu hiçbir şey ifade etmiyor olabilir).

<?php

create_connection('localhost',1740);

function create_connection($host,$port)
{
    $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

    if (!is_resource($socket)) {
        echo 'Unable to create socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
    } else {
        echo "Socket created.\n";
    }

    if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
        echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
    } else {
        echo "Set options on socket.\n";
    }

    if (!socket_bind($socket, $host, $port)) {
        echo 'Unable to bind socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
    } else {
        echo "Socket bound to port $port.\n";
    }

    if (!socket_listen($socket,SOMAXCONN)) {
        echo 'Unable to listen on socket: ' . socket_strerror(socket_last_error());
    } else {
        echo "Listening on the socket.\n";
    }

    while (true)
    {
        $connection = @socket_accept($socket);

        if($connection)
        {       
            echo "Client $connection connected!\n";
            send_data($connection);

        } else {
            echo "Bad connection.";
        }
    }
}

function send_data($connection)
{
    echo $connection;
    // Create a number between 30 and 32 that will be our initial stock price.
    $stock_price = rand(30,32);
    while (true)
    {
        socket_write($connection,"$stock_price\n",strlen("$stock_price\n"));
        sleep(1);

        // Generate a random number that will represent how much our stock price
        // will change and then make that number a decimal and attach it to the 
        // previous price.
        $stock_offset = rand(-50,50);
        $stock_price = $stock_price + ($stock_offset/100);
        echo "$stock_price\n";
    }
}


?>

Şimdiden teşekkürler.

= Ryan

0 Cevap