新しい Server-Sent Events API を使用してチャット プログラムを作成しようとしていますが、さまざまなユーザーにさまざまなイベントを送信する方法がわかりません。すべてのコードが 1 つの PHP ファイルから発生しているため、特定のイベントのみを各ユーザーに送信する最善の方法がわかりません。あなたが与えることができるどんな助けも大歓迎です. (私はPHPとJavascriptで作業しています)
user1710796
質問する
4456 次
1 に答える
3
以下がsender.phpコード(1つのphpファイル)であるとしましょう
echo "event: ping\n";
$msg1="This is first user";
echo 'data: {"msg": "' . $msg1 . '"}';
echo "\n\n";
echo "event: notify\n";
$msg2="This is second user";
echo 'data: {"msg": "' . $msg2 . '"}';
echo "\n\n";
最初のユーザーの JavaScript コードは次のようになります
var evtSource = new EventSource("sender.php");
evtSource.addEventListener("ping", function(e) {
var obj = JSON.parse(e.data);
var r_msg = obj.msg;
2 番目のユーザーの JavaScript コードは次のようになります。
var evtSource = new EventSource("sender.php");
evtSource.addEventListener("notify", function(e) {
var obj = JSON.parse(e.data);
var r_msg = obj.msg;
コードの説明は
すべてのユーザーに一意のイベント名を割り当てることができ、送信者から、その特定のユーザーのそのイベント名にデータを送信するだけです。上記のコードでは、ユーザー 1 は ping イベントのみに送信されたメッセージを取得し、2 番目のユーザーと同じように、notify イベントに送信されたメッセージを取得します。上記のコードでは、イベント名とメッセージは静的ですが、必要に応じて動的にすることができます。
これがあなたを助けることを願っています。
于 2013-04-24T05:59:33.850 に答える