소개
라이브 채팅 기능은 현대 소셜 플랫폼 및 응용 프로그램의 필수 부분이되었습니다. 즉각적인 커뮤니케이션을 제공하기 위해 개발자는 적절한 기술을 통해이 기능을 구현해야합니다. 이 기사에서는 PHP를 사용하여 기본 라이브 채팅 시스템을 구현하는 방법을 보여줍니다. 우리는 데이터베이스 생성부터 시작하여 각 개발 링크를 점차적으로 소개합니다.
1 단계 : 데이터베이스 테이블을 만듭니다
먼저 채팅 정보를 저장하려면 데이터베이스 테이블을 설계해야합니다. 이 테이블에는 최소한 메시지 ID, 발신자 ID, 수신자 ID, 메시지 내용 및 전송 시간과 같은 필드가 포함되어야합니다. 다음은 메시지 테이블을 만들기위한 간단한 SQL 문입니다.
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
sender_id INT,
receiver_id INT,
message TEXT,
sent_at DATETIME
);
2 단계 : 데이터베이스 연결 설정
다음으로 PHP의 데이터베이스에 연결해야합니다. 다음 코드를 사용하여 달성 할 수 있습니다.
<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("데이터베이스에 연결하지 못했습니다:" . $conn->connect_error);
}
?>
3 단계 : 메시지를 보냅니다
사용자는 양식을 통해 메시지를 제출할 수 있습니다. 제출 후 메시지는 데이터베이스에 저장됩니다. 다음은 보내는 메시지 처리를위한 코드의 예입니다.
<?php
// 메시지와 수신자를 보내도록하십시오ID
$message = $_POST['message'];
$receiverId = $_POST['receiver_id'];
// 발신자를 얻으십시오ID(세션 또는 로그인 확인을 통해 얻을 수 있습니다)
$senderId = $_SESSION['user_id'];
// 준비 문을 만듭니다
$stmt = $conn->prepare("INSERT INTO messages (sender_id, receiver_id, message, sent_at) VALUES (?, ?, ?, NOW())");
$stmt->bind_param("iis", $senderId, $receiverId, $message);
$stmt->execute();
// 데이터가 성공적으로 삽입되어 있는지 확인하십시오
if ($stmt->affected_rows > 0) {
echo "메시지는 성공적으로 전송되었습니다!";
} else {
echo "메시지 보내는 메시지가 실패했습니다!";
}
$stmt->close();
?>
4 단계 : 메시지를받습니다
수신자는 새로운 메시지를 실시간으로 볼 필요가 있습니다. AJAX 요청을 통해 프론트 엔드에서 정기적으로 새 메시지를받을 수 있습니다. 다음은 메시지를 받기위한 PHP 코드 예입니다.
<?php
// 수신자를 얻으십시오ID(세션 또는 로그인 확인을 통해 얻을 수 있습니다)
$receiverId = $_SESSION['user_id'];
// 준비 문을 만듭니다
$stmt = $conn->prepare("SELECT * FROM messages WHERE receiver_id = ? ORDER BY sent_at DESC");
$stmt->bind_param("i", $receiverId);
$stmt->execute();
// 결과 세트를 가져옵니다
$result = $stmt->get_result();
// 결과 설정을 연관 배열로 변환합니다
$messages = $result->fetch_all(MYSQLI_ASSOC);
// 반품JSON형식의 메시지 배열
echo json_encode($messages);
$stmt->close();
?>
5 단계 : 프론트 엔드 디스플레이
프론트 엔드에서 Ajax 요청을 통해 메시지를 받고 표시하십시오. JavaScript 코드 예는 다음과 같습니다.
<?php
// 사용AJAX백엔드에서 메시지 배열 가져 오기
var xhr = new XMLHttpRequest();
xhr.open("GET", "get_messages.php", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var messages = JSON.parse(xhr.responseText);
// 메시지 배열을 통해 루프,채팅 창에 표시됩니다
for (var i = 0; i < messages.length; i++) {
var message = messages[i];
// 메시지 내용 및 발신자 정보 등을 표시합니다.
// ...
}
}
};
xhr.send();
?>
결론적으로
위의 단계를 통해 기본 라이브 채팅 시스템을 성공적으로 구현했습니다. 사용자가 보낸 메시지는 데이터베이스에 저장되며 수신기는 Ajax를 통해 실시간으로 새 메시지를 얻고 프론트 엔드에 표시 할 수 있습니다. 이 기사가 PHP 및 Ajax 기술을 사용하여 실시간 채팅 기능을 구축하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.