Analisis aplikasi fungsi komunikasi masa nyata PHP dalam aplikasi rangkaian sosial
Dengan perkembangan pesat aplikasi rangkaian sosial, permintaan pengguna untuk komunikasi masa nyata dan kemas kini masa nyata juga semakin tinggi dan lebih tinggi. Cara tradisional menyegarkan halaman web tidak lagi dapat memenuhi keperluan pengguna Oleh itu, fungsi komunikasi masa nyata menjadi semakin penting dalam aplikasi rangkaian sosial. Sebagai bahasa yang digunakan secara meluas dalam pembangunan Web, PHP telah membangunkan secara beransur-ansur penyelesaian komunikasi masa nyata yang sepadan.
Artikel ini akan menggunakan aplikasi sembang ringkas untuk menunjukkan cara menggunakan PHP untuk melaksanakan fungsi komunikasi masa nyata.
Sebelum anda mula menulis kod, anda perlu memasang perisian atau perpustakaan berikut:
CREATE TABLE messages ( id INT(11) AUTO_INCREMENT PRIMARY KEY, sender VARCHAR(50) NOT NULL, receiver VARCHAR(50) NOT NULL, message TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Kod hadapan
<!DOCTYPE html> <html> <head> <title>实时聊天</title> <style> #message-box { border: 1px solid black; height: 200px; width: 300px; overflow: scroll; } </style> </head> <body> <div id="message-box"></div> <input type="text" id="message-input" placeholder="输入消息"> <button id="send-button">发送</button> <script> const messageBox = document.getElementById("message-box"); const messageInput = document.getElementById("message-input"); const sendButton = document.getElementById("send-button"); // 更新消息 function updateMessages() { fetch("get_messages.php") .then(response => response.json()) .then(data => { messageBox.innerHTML = ""; data.forEach(message => { const messageElement = document.createElement("div"); messageElement.innerHTML = `${message.sender}: ${message.message}`; messageBox.appendChild(messageElement); }); }); } // 发送消息 function sendMessage() { const message = messageInput.value; if (message !== "") { fetch("send_message.php", { method: "POST", body: JSON.stringify({ message }), headers: { "Content-type": "application/json" } }) .then(response => response.json()) .then(data => { if (data.success) { updateMessages(); messageInput.value = ""; } }); } } updateMessages(); sendButton.addEventListener("click", sendMessage); </script> </body> </html>
Kod belakang
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "chat_app"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败:" . $conn->connect_error); } $sql = "SELECT * FROM messages"; $result = $conn->query($sql); $messages = []; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $messages[] = $row; } } header("Content-type: application/json"); echo json_encode($messages); $conn->close(); ?>
Berikut ialah kod untuk fail send_message.php, digunakan untuk menghantar mesej:
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "chat_app"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败:" . $conn->connect_error); } $data = json_decode(file_get_contents("php://input"), true); $message = $data["message"]; $sql = "INSERT INTO messages (sender, receiver, message) VALUES ('User A', 'User B', '$message')"; if ($conn->query($sql) === true) { $response = [ "success" => true ]; } else { $response = [ "success" => false ]; } header("Content-type: application/json"); echo json_encode($response); $conn->close(); ?>
Jalankan contoh
composer require pusher/pusher-php-server
Kemudian, buat fail bernama config.php untuk menyimpan maklumat konfigurasi Pusher:
<?php require __DIR__ . '/vendor/autoload.php'; $options = array( 'cluster' => 'YOUR_PUSHER_CLUSTER', 'encrypted' => true ); $pusher = new PusherPusher( 'YOUR_PUSHER_APP_KEY', 'YOUR_PUSHER_APP_SECRET', 'YOUR_PUSHER_APP_ID', $options ); ?>
Ganti YOUR_PUSHER_CLUSTER , YOUR_PUSHER_APP_KEY, YOUR_PUSHER_APP_SECRET dan YOUR_PUSHER_APP_ID dengan maklumat tentang apl Pusher anda.
Akhir sekali, jalankan arahan berikut dalam baris arahan untuk memulakan pelayan PHP terbina dalam:
php -S localhost:8000
Lawati http://localhost:8000/chat.html dalam penyemak imbas untuk melihat antara muka sembang. Anda boleh membuka berbilang kejadian dalam tetingkap atau tab penyemak imbas yang berbeza dan mula bersembang dalam masa nyata.
Ringkasan
Atas ialah kandungan terperinci Analisis aplikasi fungsi komunikasi masa nyata PHP dalam aplikasi rangkaian sosial. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!