EventSource를 사용하여 1 : 1로 실시간 연결을 생성하려고합니다. 내 이벤트 소스가 설정되어 있으며 개발자 도구에서 공개하고 응답하지만 작동합니다 데이터가 PHP 파일에서 표시되지 않습니다.SSE를 사용하여 mysql select의 응답 받기
PHP :
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
session_start(); // Starting Session
include 'dbconnect.php';
include 'Session.php';
$messageuserid = $_GET['messageuserid'];
$RunSqlGM = "SELECT * FROM messages WHERE (SUsername = '$Session_Username' AND RUsername = '$messageuserid') OR (SUsername = '$messageuserid' AND RUsername = '$Session_Username')";
$getmessagethread = mysqli_query($con,$RunSqlGM)or die(mysqli_error());
while($MessageRows = mysqli_fetch_array($getmessagethread)) {
$MSUsername = $MessageRows['SUsername'];
$MRUsername = $MessageRows['RUsername'];
$MSender = $MessageRows['Sender'];
$MessageContent = $MessageRows['Message'];
$TimeStamp = date("g:ia \o\\n l jS F Y", strtotime($MessageRows["Time"]));
if ($MSender === $Session_Username) {
echo "<table class='messagebubbleright'>";
echo "<tr><th></th></tr>";
echo "<tr>";
echo "<td class='inforight'>$MSender<br>$TimeStamp</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='bubbleright'>$MessageContent</td>";
echo "</tr>";
echo "</table>";
flush();
} else {
echo "<table class='messagebubbleleft'>";
echo "<tr><th></th></tr>";
echo "<tr>";
echo "<td class='infoleft'>$MSender<br>$TimeStamp</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='bubbleleft'>$MessageContent</td>";
echo "</tr>";
echo "</table>";
flush();
}
}
mysqli_close($con); // Connection Closed
?>
그리고 이벤트 소스는 버튼 클릭으로 시작되는이 기능에 포함되어 호출 JS.
JS :
function GetMessages(GetMUserID) {
if (typeof(EventSource) !== "undefined") {
var source = new EventSource("db/getmessages.php?messageuserid=" + GetMUserID);
source.addEventListener("open", function() {
$("#readmessagearea").html("Getting server updates");
});
source.addEventListener("message", function(event) {
$("#readmessagearea").html(event.data);
});
} else {
$("#readmessagearea").html("Sorry, your browser does not support server-sent events...");
}
}
어떤 도움이나 지침은 크게 감상 할 수있다. 나는 SSE에 비교적 새로운 것이지만 이것이 작동해야한다는 것을 알 수 있습니다.
감사합니다 @ 대런 쿡, 아래에서 볼 수 있지만 이러한 문제를 발견 한 후에 코드를 변경했지만 몇 가지 다른 문제가 발생했습니다. 지금 나는 그것을 작동 시키려고 시도하고있다. 일단 그렇게되면 데이터 필터링을 시작합니다. 이 상황에서 JSON을 사용하는 방법을 이해하기 위해 JSON을 자주 사용하지는 않았지만 한 번해볼 생각이 있었지만 조금 잃어버린 것을 인정합니다. – AlphaDaemon