Google 검색 및 검색 주간 후. data.text라는 플랫 텍스트 파일 대신 데이터베이스 테이블에서 긴 폴링에 대한 단일 자습서를 찾는 일도 어렵습니다. 현재, 나는 data.text에 수동으로 아무것도 쓰지 않고 바로 브라우저에 나타납니다.데이터베이스 데이터로 긴 폴링?
이것은 질문입니다. 데이터베이스를 사용한 Long 폴링? StackOverflow에서도 제대로 응답하지 않습니다. (내가 여기지만 헛된 많이 발견했다.).이 예는 여기에 있습니다 filemtime alternative for MySQL
나는 그것이 데이터베이스에서 데이터를 가져 오는을 위해 수 있도록하기 위해 getdata.php을 수정하는 방법? 여기 예를 나열하고
id fro to mesg time status last_modified
다음과 같이
$sql=mysqli_query($database,"SELECT * FROM messages where time>=$curr_date ORDER by time DESC");
while($row=mysqli_fetch_array($sql)){
$messages=$row['messages'];
$id=$row['id'];
echo $messages;
}
메시지 테이블입니다. 이 예제에서는 세 개의 파일이 사용되고 있습니다.
- index.html을
- getdat.php
- data.text
(MySQL의) 데이터베이스에서 데이터를 얻을 수있는 네 번째 파일을 할 필요가 있는가? 그렇지 않다면 데이터베이스의 동적 데이터를 사용하기 위해 getdata.php 또는 data.text에서 어떤 유형의 변경이 필요합니까?
은 여기 내 자바 스크립트
<script type="text/javascript" charset="utf-8">
var timestamp = null;
function waitformsg() {
$.ajax({
type:"Post",
url:"getdata.php?timestamp="+timestamp,
async:true,
cache:false,
success:function(data) {
var json = eval('(' + data + ')');
if(json['msg'] != "") {
$("#messages").append(json['msg']);
}
timestamp = json["timestamp"];
setTimeout("waitformsg()", 1000);
},
error:function(XMLhttprequest, textstatus, errorthrown) {
alert("error:" + textstatus + "(" + errorthrown + ")");
setTimeout("waitformsg()", 15000);
}
});
}
$(document).ready(function() {
waitformsg();
});
</script>
가 여기에 최근 매우 비슷한 짓을 한 getdata.php 파일
<?php
include("../model/includes/classes.php");
$filename='data.php';
$lastmodif=isset($_GET['timestamp'])?$_GET['timestamp']:0;
$currentmodif=filemtime($filename);
while($currentmodif<=$lastmodif){
usleep(10000);
clearstatcache();
$currentmodif=filemtime($filename);
}
$response=array();
$response['msg']=file_get_contents($filename);
$response['timestamp']=$currentmodif;
echo json_encode($response);
?>
스택 오버플로에 오신 것을 환영합니다. 질문을 명확히하면 대답을 얻는 데 도움이됩니다. ajax를 사용하여 서버를 폴링하는 것으로 가정되는 웹 페이지 (자바 스크립트의 클라이언트 응용 프로그램이라고도 함)를 만드는 것 같습니다. getdata.php에 대한 첫 번째 아약스 요청은 이미 테이블에 저장된 모든 메시지를 검색하고 이후 요청은 가장 최근의 요청 이후에 나타난 새 메시지를 검색하려는 것으로 보인다. 그 맞습니까? 또한,'messages' 테이블의 정의를 보여주십시오. –
@OllieJones 답장을 보내 주셔서 감사합니다.이 질문을 해결할 수있는 마지막 희망입니다. 맞습니다. 긴 폴링 기법을 사용하여 채팅 응용 프로그램을 작성하고 있습니다 .Messaes 테이블은 ID,받는 사람, 메시지, 시간 항목. –