ホームページ  >  記事  >  バックエンド開発  >  PHP は、オンライン インスタント メッセージング システムでのメッセージの送受信を実装します。

PHP は、オンライン インスタント メッセージング システムでのメッセージの送受信を実装します。

PHPz
PHPzオリジナル
2023-05-24 12:31:571472ブラウズ

人々のライフスタイルの変化とネットワーク技術の継続的な発展により、インスタント メッセージングは​​現代人にとって不可欠なコミュニケーション手段の 1 つになりました。この傾向に基づいて、さまざまなオンライン インスタント メッセージング システムが登場しました。異なる場所にいる人々が同時にメッセージを交換できるため、オンライン インスタント メッセージング システムはどのようにしてメッセージの配信を実現するのでしょうか?この記事では、PHP プログラミング言語を使用してオンライン インスタント メッセージング システムでメッセージを送受信する方法を紹介します。

  1. オンライン インスタント メッセージング システム実装の基本原則

オンライン インスタント メッセージング システムの基本原則は、あるクライアントから別のクライアントにメッセージを送信することです。このプロセスには 2 つの主要な部分が含まれます。

1.1 メッセージ送信

あるクライアントから別のクライアントにメッセージを送信するプロセスでは、次の手順を完了する必要があります。

(a) ユーザーはクライアントでメッセージを入力し、送信ボタンをクリックします。

(b) ネットワーク経由でメッセージをサーバーに送信します。

(c) サーバーはメッセージを保存します。データベース内;

(d) サーバーはメッセージをターゲット クライアントに送信します;

(e) ターゲット クライアントはメッセージを受信して​​処理します。

1.2 メッセージ受信

クライアントは、新しいメッセージがあるかどうかを確認するためにサーバーを継続的にポーリングする必要があります。サーバーに新しいメッセージがある場合、クライアントは時間内にメッセージを取得して処理する必要があります。

  1. PHP を使用してオンライン インスタント メッセージング システムを実装する基本プロセス

2.1 データベースを作成する

オンライン インスタント メッセージング システムを実装する前に、メッセージを保存するデータベースを作成する必要があります。 MySQL またはその他のリレーショナル データベースを使用できます。

データベースに次のテーブルを作成します:

CREATE TABLE メッセージ (

id int(11) NOT NULL AUTO_INCREMENT,
sender varchar(255) NOT NULL,
receiver varchar(255) NOT NULL,
message text NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id)

);

2.2 サーバー側のコードを確立します

Server 終了コードは、ユーザーが入力したメッセージの受信、データベースへのメッセージの保存、ターゲット クライアントへのメッセージの送信を担当する必要があります。

まず、次のコードを使用してデータベースに接続する必要があります:

$conn = mysqli_connect("localhost", "username", "password", "database_name");

Connect 次に、ユーザーが入力したメッセージを処理する関数を記述する必要があります。

function save_message($sender, $receiver, $message) {

global $conn;
$t = time();
$created_at = date("Y-m-d H:i:s", $t);
$query = "INSERT INTO messages (sender, receiver, message, created_at) VALUES ('$sender', '$receiver', '$message', '$created_at')";
mysqli_query($conn, $query);

}

この関数は、ユーザー名、受信者、およびメッセージの内容をデータベースに保存します。

次に、データベースからメッセージを取得および送信する関数を作成します。

function get_messages($receiver) {

global $conn;
$query = "SELECT * FROM messages WHERE receiver='$receiver'";
$result = mysqli_query($conn, $query);
$messages = array();
while ($row = mysqli_fetch_assoc($result)) {
    $messages[] = $row;
}
$json_messages = json_encode($messages);
echo $json_messages;

}

関数が開始されます。 from 対象ユーザーのすべてのメッセージをデータベースから取得し、JSON 配列形式にエンコードします。この関数を呼び出すことで、サーバーはターゲットのクライアントにメッセージを送信できます。

2.3 クライアント コードの確立

クライアント コードは、ユーザーが入力したメッセージをサーバーに送信し、サーバーから新しいメッセージを取得する必要があります。

まず、次のコードを使用してサーバーに接続する必要があります:

varソケット = new WebSocket("ws://localhost:8080");

次に、ユーザーがクリックすると、ボタンを送信するときに、次のコードを呼び出してサーバーにメッセージを送信します。 message = "hello, username2";

var data = {"sender": 送信者, "receiver": 受信者, "message": message};

socket.send(JSON.stringify(data));

最後に、サーバーに新しいメッセージをポーリングする関数を作成できます:

setInterval(function() {

var receiver = "username1";
var data = {"receiver": receiver};
socket.send(JSON.stringify(data));

}, 1000);

This function毎秒サーバーにデータを送信します。 新しいニュースを入手します。この機能は、jQuery またはその他の JavaScript ライブラリを使用すると、より簡単に実現できます。

概要

    この記事では、PHP プログラミング言語を使用してオンライン インスタント メッセージング システムでメッセージを送受信する方法を紹介します。オンライン インスタント メッセージング システムを実現する鍵となるのは、サーバー側コードとクライアント側コード間の対話であり、これにより、異なるクライアント間でメッセージを迅速かつ効率的に送信できるようになります。このようにして、Web アプリケーションにオンライン インスタント メッセージングを実装し、便利で高速な通信方法を実現できます。

以上がPHP は、オンライン インスタント メッセージング システムでのメッセージの送受信を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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