Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan penghantaran dan penerimaan mesej dalam sistem pemesejan segera dalam talian

PHP melaksanakan penghantaran dan penerimaan mesej dalam sistem pemesejan segera dalam talian

PHPz
PHPzasal
2023-05-24 12:31:571467semak imbas

Dengan perubahan dalam gaya hidup orang ramai dan perkembangan berterusan teknologi rangkaian, pemesejan segera telah menjadi salah satu kaedah komunikasi penting untuk orang moden. Di bawah trend ini, pelbagai sistem pemesejan segera dalam talian telah muncul. Memandangkan orang di tempat yang berbeza boleh bertukar-tukar mesej pada masa yang sama, bagaimanakah sistem pemesejan segera dalam talian merealisasikan penghantaran mesej? Artikel ini akan memperkenalkan cara menghantar dan menerima mesej dalam sistem pemesejan segera dalam talian melalui bahasa pengaturcaraan PHP.

  1. Prinsip asas untuk melaksanakan sistem pemesejan segera dalam talian

Prinsip asas sistem pemesejan segera dalam talian adalah untuk menghantar mesej daripada satu pelanggan kepada pelanggan yang lain. Proses ini mengandungi dua bahagian utama:

1.1 Menghantar mesej

Dalam proses menghantar mesej daripada satu pelanggan ke pelanggan yang lain, langkah-langkah berikut perlu diselesaikan:

(a) Pengguna memasukkan mesej pada klien dan mengklik butang hantar;

(b) Menghantar mesej ke pelayan melalui rangkaian

(c) Pelayan menyimpan mesej dalam pangkalan data;

(d) Pelayan menghantar mesej kepada klien sasaran

(e) Pelanggan sasaran menerima mesej dan memprosesnya.

1.2 Menerima mesej

Pelanggan perlu terus meninjau pelayan untuk menyemak sama ada terdapat mesej baharu. Apabila pelayan mempunyai mesej baharu, pelanggan perlu mendapatkan dan memproses mesej dalam masa.

  1. Proses asas untuk melaksanakan sistem pemesejan segera dalam talian menggunakan PHP

2.1 Cipta pangkalan data

Sebelum melaksanakan sistem pemesejan segera dalam talian, anda perlu untuk mencipta pangkalan data untuk Pangkalan Data di mana mesej disimpan. Anda boleh menggunakan MySQL atau pangkalan data hubungan lain.

Buat jadual berikut dalam pangkalan data:

BUAT mesej JADUAL (

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 Wujudkan kod sebelah pelayan

pelayan Kod tamat perlu bertanggungjawab untuk menerima mesej yang dimasukkan oleh pengguna, menyimpan mesej ke pangkalan data dan menghantar mesej kepada klien sasaran.

Pertama, anda perlu menggunakan kod berikut untuk menyambung ke pangkalan data:

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

Sambung Seterusnya, anda perlu menulis fungsi untuk memproses mesej yang dimasukkan oleh pengguna:

fungsi 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);

}

Fungsi ini menyimpan nama pengguna, penerima dan kandungan mesej disimpan ke pangkalan data.

Seterusnya, tulis fungsi untuk mendapatkan dan menghantar mesej daripada pangkalan data:

fungsi 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;

}

Fungsi bermula daripada Dapatkan semua mesej pengguna sasaran daripada pangkalan data dan kodkannya ke dalam format tatasusunan JSON. Dengan memanggil fungsi ini, pelayan boleh menghantar mesej kepada klien sasaran.

2.3 Membina kod pelanggan

Kod pelanggan perlu bertanggungjawab untuk menghantar mesej yang dimasukkan oleh pengguna ke pelayan dan mendapatkan mesej baharu daripada pelayan.

Pertama, anda perlu menggunakan kod berikut untuk menyambung ke pelayan:

var socket = new WebSocket("ws://localhost:8080");

Seterusnya, apabila pengguna mengklik Apabila menghantar butang, panggil kod berikut untuk menghantar mesej ke pelayan:

var sender = "username1";
var receiver = "username2";
var message = "hello, username2";
var data = {"sender": pengirim, "receiver": receiver, "message": message};
socket.send(JSON.stringify(data));

Akhir sekali, anda boleh menulis fungsi Tinjau pelayan untuk mesej baharu:

setInterval(function() {

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

}, 1000);

Fungsi ini menghantar data ke pelayan setiap saat Dapatkan berita baharu. Fungsi ini boleh dicapai dengan lebih mudah menggunakan jQuery atau perpustakaan JavaScript lain.

  1. Ringkasan

Artikel ini memperkenalkan kaedah menghantar dan menerima mesej dalam sistem pemesejan segera dalam talian melalui bahasa pengaturcaraan PHP. Kunci untuk merealisasikan sistem pemesejan segera dalam talian ialah interaksi antara kod sisi pelayan dan sisi pelanggan, supaya mesej boleh dihantar dengan cepat dan cekap antara pelanggan yang berbeza. Dengan cara ini, kami boleh melaksanakan pemesejan segera dalam talian dalam aplikasi web untuk mencapai cara komunikasi yang mudah dan pantas.

Atas ialah kandungan terperinci PHP melaksanakan penghantaran dan penerimaan mesej dalam sistem pemesejan segera dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Reka bentuk API dalam PHPArtikel seterusnya:Reka bentuk API dalam PHP