장기 폴링은 서버가 명시적인 요청을 기다리지 않고 클라이언트에 데이터를 보낼 수 있도록 웹 애플리케이션에서 사용되는 폴링 기술입니다. 긴 폴링을 구현하려면 클라이언트와 서버 간에 지속적인 연결을 설정해야 합니다.
장기 폴링에 대한 요청을 처리하려면 시간 초과가 긴 요청을 처리하도록 Apache를 구성합니다. 이는 Apache 구성에서 KeepAliveTimeout 및 MaxKeepAliveRequests 지시문을 설정하여 달성할 수 있습니다.
장기 폴링을 구현하는 간단한 PHP 스크립트는 다음과 같이 작성할 수 있습니다.
<?php while (true) { // Sleep for a random duration to simulate data availability sleep(rand(2, 10)); // Generate a random string to represent new data $data = "Message: " . rand(1, 10); // Send the data to the client echo $data; flush(); } ?>
클라이언트 측에서는 JavaScript를 사용하여 PHP 스크립트에 대한 지속적인 연결을 설정하고 들어오는 데이터를 처리할 수 있습니다. 이는 다음 jQuery 코드를 사용하여 달성할 수 있습니다.
$(function() { function waitForMsg() { $.ajax({ url: "msgsrv.php", async: true, timeout: 50000, success: function(data) { // Append the received data to a DOM element $("#messages").append("<div>" + data + "</div>"); // Recursively call the waitForMsg function to continue polling waitForMsg(); }, error: function(XMLHttpRequest, textStatus, errorThrown) { // Handle the error and try again after a delay waitForMsg(); } }); } waitForMsg(); });
이 예는 데모 목적으로 긴 폴링의 기본 구현을 제공합니다. 강력하고 확장 가능한 구현을 위해서는 Node.js 또는 Spring Boot와 같은 프레임워크를 사용하는 것이 좋습니다.
위 내용은 웹 애플리케이션에서 긴 폴링은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!