ホームページ  >  記事  >  バックエンド開発  >  PHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加する方法

PHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加する方法

WBOY
WBOYオリジナル
2023-07-08 19:46:371470ブラウズ

PHP と MQTT を使用して、Web サイトにリアルタイム ユーザー チャット機能を追加する方法

インターネット時代の今日、Web サイト ユーザーはリアルタイムのコミュニケーションとコミュニケーションの必要性がますます高まっています。 PHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加できます。この記事では、PHP と MQTT を使用して Web サイトのリアルタイム ユーザー チャット機能を実装する方法とコード例を紹介します。

  1. 環境の準備を確認する
    始める前に、PHP と MQTT の実行環境がインストールされ、構成されていることを確認してください。 XAMPP などの統合開発環境を使用することも、PHP と MQTT の実行環境を個別に構成することもできます。同時に、MQTT ブローカーも必要です。Mosquitto などのオープンソースの MQTT ブローカーを使用できます。
  2. MQTT PHP 拡張機能をインストールする
    PHP で MQTT プロトコルを使用するには、MQTT PHP 拡張機能をインストールする必要があります。 MQTT PHP 拡張機能を GitHub からダウンロードしてコンパイルしてインストールすることも、Composer を使用してインストールすることもできます。
  3. MQTT ブローカーの接続
    PHP コードでは、メッセージを送受信するために、まず MQTT ブローカーに接続する必要があります。以下は MQTT ブローカーへの接続の例です:
<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "phpMQTT Chat Client");
if (!$mqtt->connect()) {
    exit("连接MQTT Broker失败");
}

上記のコードでは、phpMQTT クラスを使用して MQTT ブローカーに接続します。 「Mqtt.example.com」を独自の MQTT ブローカーのアドレスに置き換える必要があることに注意してください。

  1. メッセージの送受信
    MQTT ブローカーに正常に接続したら、トピックをパブリッシュおよびサブスクライブすることでメッセージを送受信できます。以下はメッセージ送信の例です。
<?php
$topic = "chat";
$message = "Hello, World!";
$mqtt->publish($topic, $message);

上記のコードでは、「chat」という名前のトピックを公開し、メッセージを送信しました。

以下はメッセージ受信の例です:

<?php
$topic = "chat";
$mqtt->subscribe($topic);
while($mqtt->proc()){
    $message = $mqtt->message;
    echo "收到消息:".$message;
}

上記のコードでは、トピック「チャット」をサブスクライブし、ループを使用してメッセージを継続的に受信し、出力します。

  1. Web サイトにチャット インターフェイスを追加する
    Web サイトにチャット機能を追加するには、フロントエンド インターフェイスにチャット ウィンドウを埋め込み、JavaScript を介して MQTT ブローカーからメッセージを受信して​​表示する必要があります。チャットウィンドウの中央にあります。

以下は、単純なチャット ウィンドウの HTML コードです:

<!DOCTYPE html>
<html>
<head>
    <title>实时用户聊天</title>
</head>
<body>
    <div id="chat-window">
        <ul id="chat-messages"></ul>
        <input type="text" id="message-input" placeholder="输入消息">
        <button id="send-button">发送</button>
    </div>
    
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    <script src="mqttws31.js"></script>
    <script>
        var mqtt = new Paho.MQTT.Client("mqtt.example.com", Number(1883), "jsMQTT Chat Client");
        mqtt.onMessageArrived = function(message) {
            $("#chat-messages").append("<li>" + message.payloadString + "</li>");
        };
        mqtt.connect({onSuccess:function() {
            mqtt.subscribe("chat");
        }});
        
        $(document).ready(function() {
            $("#send-button").click(function() {
                var message = $("#message-input").val();
                var message = new Paho.MQTT.Message(message);
                message.destinationName = "chat";
                mqtt.send(message);
                $("#message-input").val("");
            });
        });
    </script>
</body>
</html>

上記のコードでは、Paho.MQTT.Client クラスを使用して MQTT ブローカーに接続し、サブスクライブします。トピックへ、メッセージの送受信方法はチャット機能を実装します。

上記のコードを HTML ファイルとして保存し、MQTT ブローカーのアドレスを自分のアドレスに置き換えることで、Web サイトでリアルタイム ユーザー チャット機能を使用できます。

概要
この記事では、PHP と MQTT を使用してリアルタイム ユーザー チャット機能を Web サイトに追加する方法について説明します。 MQTT Broker に接続し、メッセージを送受信し、Web サイトにチャット インターフェイスを追加することで、簡単なリアルタイム ユーザー チャット機能を実装できます。この記事がこのタスクの完了に役立つことを願っています。

以上がPHP と MQTT を使用して、リアルタイムのユーザー チャット機能を Web サイトに追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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