1v1 チャット システムを作成する小さなプロジェクトに取り組んでいます。Server-Sent Events
自分を活かせるプロジェクトに取り組みたいと思っていました。これはかなりうまく機能していますが、最近、一般的にチャットがより効率的になるように、コードにいくつかの変更を加えています。
イベント ソースを実行すると、奇妙な問題が発生します。session_start() を持つ他の PHP ページに移動しようとすると、読み込まれません。
私のイベント ソース スクリプトは次のようになります。
<?php
session_start();
require "connect.php";
require "user.php";
header("Content-Type: text/event-stream\n\n");
header('Cache-Control: no-cache');
set_time_limit(1200);
$ms = 5000;
//SOME MORE VARIABLES HERE
while (1) {
echo "data: SSESSION " . $_SESSION["conversation" . $_GET["id"]];
echo "\n\n";
/*CHAT SCRIPT HERE*/
ob_flush();
flush();
usleep($ms * 1000);
}
?>
セッションが返す必要があるのは、会話の行数です。確かにそうです。
私が行く場合test.php
:
<?php
session_start();
echo $_SESSION["conversation121643"];
?>
の実行中はServer-Sent Event
、イベントをキャンセルするまでこのページの読み込みが続行されます。
関数を使用してみましたob_flush
が、何も修正されません。
なぜこの問題が発生するのかわかりません。そして、それに対する修正があることを願っています。