人々のライフスタイルの変化とネットワーク技術の継続的な発展により、インスタント メッセージングは現代人にとって不可欠なコミュニケーション手段の 1 つになりました。この傾向に基づいて、さまざまなオンライン インスタント メッセージング システムが登場しました。異なる場所にいる人々が同時にメッセージを交換できるため、オンライン インスタント メッセージング システムはどのようにしてメッセージの配信を実現するのでしょうか?この記事では、PHP プログラミング言語を使用してオンライン インスタント メッセージング システムでメッセージを送受信する方法を紹介します。
オンライン インスタント メッセージング システムの基本原則は、あるクライアントから別のクライアントにメッセージを送信することです。このプロセスには 2 つの主要な部分が含まれます。
1.1 メッセージ送信
あるクライアントから別のクライアントにメッセージを送信するプロセスでは、次の手順を完了する必要があります。
(a) ユーザーはクライアントでメッセージを入力し、送信ボタンをクリックします。
(b) ネットワーク経由でメッセージをサーバーに送信します。
(c) サーバーはメッセージを保存します。データベース内;
(d) サーバーはメッセージをターゲット クライアントに送信します;
(e) ターゲット クライアントはメッセージを受信して処理します。
1.2 メッセージ受信
クライアントは、新しいメッセージがあるかどうかを確認するためにサーバーを継続的にポーリングする必要があります。サーバーに新しいメッセージがある場合、クライアントは時間内にメッセージを取得して処理する必要があります。
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 は、オンライン インスタント メッセージング システムでのメッセージの送受信を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。