>백엔드 개발 >PHP 튜토리얼 >PHP는 온라인 인스턴트 메시징 시스템에서 메시지 보내기 및 받기를 구현합니다.

PHP는 온라인 인스턴트 메시징 시스템에서 메시지 보내기 및 받기를 구현합니다.

PHPz
PHPz원래의
2023-05-24 12:31:571472검색

사람들의 라이프 스타일 변화와 지속적인 네트워크 기술의 발전으로 인스턴트 메시징은 현대인에게 필수적인 커뮤니케이션 방법 중 하나가 되었습니다. 이러한 추세에 따라 다양한 온라인 인스턴트 메시징 시스템이 등장했습니다. 서로 다른 장소에 있는 사람들이 동시에 메시지를 교환할 수 있는데, 온라인 인스턴트 메시징 시스템은 메시지 전달을 어떻게 실현합니까? 이 기사에서는 PHP 프로그래밍 언어를 통해 온라인 인스턴트 메시징 시스템에서 메시지를 보내고 받는 방법을 소개합니다.

  1. 온라인 인스턴트 메시징 시스템 구현의 기본 원칙

온라인 인스턴트 메시징 시스템의 기본 원칙은 한 클라이언트에서 다른 클라이언트로 메시지를 보내는 것입니다. 이 프로세스는 두 가지 주요 부분으로 구성됩니다.

1.1 메시지 보내기

한 클라이언트에서 다른 클라이언트로 메시지를 보내는 과정에서 다음 단계를 수행해야 합니다.

(a) 사용자는 클라이언트에 메시지를 입력하고 보내기 버튼을 클릭합니다.

(b) 네트워크를 통해 서버에 메시지를 보냅니다.

(c) 서버가 메시지를 데이터베이스에 저장합니다.

(d) 서버가 대상 클라이언트에 메시지를 보냅니다. (e) 대상고객 단말은 메시지를 수신하여 처리한다.

1.2 메시지 수신

클라이언트는 새 메시지가 있는지 확인하기 위해 지속적으로 서버를 폴링해야 합니다. 서버에 새 메시지가 있으면 클라이언트는 제때에 메시지를 얻고 처리해야 합니다.

PHP를 사용하여 온라인 인스턴트 메시징 시스템을 구현하는 기본 프로세스
  1. 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 서버측 코드 설정

서버측 코드는 사용자가 입력한 메시지를 수신하고 저장하는 역할을 담당해야 합니다. 메시지를 데이터베이스에 저장하고 대상 클라이언트에 보낸 메시지를 저장합니다.

먼저 데이터베이스에 연결하려면 다음 코드를 사용해야 합니다.

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

다음으로 사용자가 입력한 메시지를 처리하는 함수:

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;

}

이 함수는 데이터베이스에서 대상 사용자에 대한 모든 메시지를 검색하여 JSON 배열로 인코딩합니다. 체재. 이 함수를 호출하면 서버는 대상 클라이언트에게 메시지를 보낼 수 있습니다.

2.3 클라이언트 코드 작성

클라이언트 코드는 사용자가 입력한 메시지를 서버에 보내고 서버로부터 새 메시지를 받는 역할을 담당해야 합니다.

먼저 서버에 연결하려면 다음 코드를 사용해야 합니다.

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

다음으로 사용자가 보내기 버튼을 클릭하면 서버에 메시지를 보내는 다음 코드 :

var sender = "username1";

var receive = "username2";

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

마지막으로 새 메시지에 대해 서버를 폴링하는 함수를 작성할 수 있습니다.

setInterval(function() {

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

}, 1000);

This 이 함수는 새 메시지를 받기 위해 1초마다 서버에 데이터를 보냅니다. 이 기능은 jQuery 또는 기타 JavaScript 라이브러리를 사용하여 더 쉽게 구현할 수 있습니다.

요약
  1. 이 글에서는 PHP 프로그래밍 언어를 통해 온라인 인스턴트 메시징 시스템에서 메시지를 보내고 받는 방법을 소개합니다. 온라인 인스턴트 메시징 시스템을 실현하는 핵심은 서버 측 코드와 클라이언트 측 코드 간의 상호 작용이므로 메시지가 서로 다른 클라이언트 간에 빠르고 효율적으로 전송될 수 있습니다. 이러한 방식으로 웹 애플리케이션에서 온라인 인스턴트 메시징을 구현하여 편리하고 빠른 커뮤니케이션 방법을 구현할 수 있습니다.

위 내용은 PHP는 온라인 인스턴트 메시징 시스템에서 메시지 보내기 및 받기를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP의 API 디자인다음 기사:PHP의 API 디자인