ホームページ  >  記事  >  バックエンド開発  >  php を使用して Websocket を開発し、リアルタイム データ統計関数を作成します

php を使用して Websocket を開発し、リアルタイム データ統計関数を作成します

王林
王林オリジナル
2023-12-02 09:07:101266ブラウズ

php を使用して Websocket を開発し、リアルタイム データ統計関数を作成します

PHP を使用して Websocket を開発し、リアルタイム データ統計関数を作成する

はじめに:
Websocket は、ブラウザ間で通信できる全二重通信プロトコルです。とサーバーの間で永続的な接続を確立し、リアルタイム通信を実現します。 Web 開発では、Websocket は、リアルタイム チャット、リアルタイム モニタリング、リアルタイム データ統計、その他の機能などのリアルタイム データ送信を実装するためによく使用されます。この記事では、PHP を使用して Websocket を開発する方法を紹介し、リアルタイム データ統計関数を実装するための具体的なコード例を示します。

1. Websocket を理解する
Websocket は、双方向通信をサポートする TCP プロトコルに基づく通信プロトコルです。 Websocket は、一般的な http:// (または https://) の代わりに、URL プレフィックスとして ws:// (または wss://) を使用します。 HTTP リクエストとは異なり、Websocket 通信はリクエスト/レスポンス モードではなく継続的な接続を維持します。接続が確立されると、サーバーとクライアントはいつでも相互にメッセージを送信できます。

2. Websocket サーバーを構築する
PHP では、Swoole 拡張機能を使用して Websocket サーバーを構築できます。 Swoole は、開発者が高性能ネットワーク プログラミングに PHP 言語を使用できるようにする一連の API を提供するコルーチン ネットワーク通信エンジンです。

1. Swoole 拡張機能のインストール
次のコマンドを使用して Swoole 拡張機能をインストールできます:

$ pecl install swoole

2. Websocket サーバーを作成します

<?php
$server = new swoole_websocket_server("0.0.0.0", 9501);

// 监听WebSocket连接打开事件
$server->on('open', function (swoole_websocket_server $server, $request) {
    echo "New connection: {$request->fd}
";
});

// 监听WebSocket消息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
    // 在这里处理接收到的消息
    echo "Received message: {$frame->data}
";
});

// 监听WebSocket连接关闭事件
$server->on('close', function ($ser, $fd) {
    echo "Connection closed: {$fd}
";
});

// 启动WebSocket服务器
$server->start();
?>

3. リアルを送信します-time data
Websocket サーバーのメッセージ イベントでは、ビジネス ロジックに基づいて、受信したメッセージを処理し、クライアントにデータを送信できます。リアルタイムデータ統計機能では、通常、最新のデータが定期的にクライアントに送信されます。

1. リアルタイム データの取得
適切な場所にコードを記述して、データベースまたはその他のソースから最新のリアルタイム データを取得できます。

2. データを定期的に送信する

function sendMessageToAllClients($server, $message) {
    foreach ($server->connections as $fd) {
        $server->push($fd, $message);
    }
}

function sendRealtimeData($server) {
    // 获取实时数据
    $data = getDataFromDatabase();

    // 将数据转换成JSON格式
    $json = json_encode($data);

    // 发送数据给所有客户端
    sendMessageToAllClients($server, $json);
}

// 设置定时任务,每隔5秒发送最新的实时数据给所有客户端
swoole_timer_tick(5000, function ($timerId) use ($server) {
    sendRealtimeData($server);
});

4. フロントエンド ページ
最後に、リアルタイム データを表示するフロントエンド ページを作成する必要があります。

<!DOCTYPE html>
<html>
<head>
    <title>实时数据统计</title>
</head>
<body>
    <h1>实时数据统计</h1>
    <div id="realtime-data"></div>

    <script>
        var ws = new WebSocket("ws://your-websocket-server-address");
        
        ws.onmessage = function(event) {
            var data = JSON.parse(event.data);
            // 在这里处理接收到的实时数据
            document.getElementById("realtime-data").innerText = JSON.stringify(data);
        };
    </script>
</body>
</html>

結論:
WebsocketサーバーをPHPで開発することで、リアルタイムデータ統計機能を簡単に実装できます。この記事では、開発者の役に立つことを願って、具体的な実装手順とコード例を示します。 Websocket テクノロジーを使用すると、リアルタイム チャット、リアルタイム監視など、よりリアルタイムな機能を実装できます。 Websocket テクノロジーを広く適用することで、より優れたインタラクティブなエクスペリエンスとリアルタイムのデータ表示をユーザーに提供できます。

以上がphp を使用して Websocket を開発し、リアルタイム データ統計関数を作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。