Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Analisis aplikasi fungsi komunikasi masa nyata PHP dalam aplikasi rangkaian sosial

Analisis aplikasi fungsi komunikasi masa nyata PHP dalam aplikasi rangkaian sosial

PHPz
PHPzasal
2023-08-10 20:09:091303semak imbas

Analisis aplikasi fungsi komunikasi masa nyata PHP dalam aplikasi rangkaian sosial

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.

Persediaan

Sebelum anda mula menulis kod, anda perlu memasang perisian atau perpustakaan berikut:

  • PHP (anda boleh menggunakan persekitaran pembangunan berpakej seperti xampp atau wampp)
  • Komposer (pengurus pakej PHP)
  • Juga diperlukan Cipta pangkalan data untuk menyimpan sejarah sembang. Jadual boleh dibuat menggunakan pernyataan SQL 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

Pertama, kami memerlukan antara muka hadapan untuk memaparkan rekod sembang dan mengemas kini mesej dalam masa nyata. Dalam contoh ini, kami menggunakan HTML, CSS dan JavaScript untuk mencipta antara muka sembang yang mudah. Berikut ialah contoh kod:

<!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

Kami menggunakan PHP dan MySQL untuk mengendalikan logik bahagian belakang. Berikut ialah kod untuk fail get_messages.php, digunakan untuk mendapatkan sejarah sembang:

<?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

Pertama, simpan kod bahagian hadapan sebagai fail HTML, Contohnya chat.html. Kemudian, pergi ke direktori di mana fail HTML terletak pada baris arahan dan jalankan arahan berikut untuk memasang kebergantungan yang diperlukan:

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

Melalui contoh dalam artikel ini, kita dapat melihat bahawa tidak rumit untuk melaksanakan fungsi komunikasi masa nyata menggunakan PHP. Dengan bantuan perpustakaan dan teknologi sedia ada, kami boleh menyediakan pengalaman pengguna yang lebih baik dan memenuhi keperluan masa nyata pengguna untuk aplikasi rangkaian sosial. Sudah tentu, contoh dalam artikel ini hanyalah aplikasi sembang mudah, dan keadaan sebenar mungkin lebih kompleks dan memerlukan lebih banyak fungsi dan langkah keselamatan. Tetapi saya harap artikel ini dapat memberi anda beberapa idea dan kaedah asas untuk merealisasikan fungsi komunikasi masa nyata.

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!

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