3

我正在尝试使用新的服务器发送事件 API 编写一个聊天程序,但是,我一直无法弄清楚如何向不同的用户发送不同的事件。由于所有代码都发生在一个 PHP 文件中,我不确定仅向每个用户发送某些事件的最佳方式。您可以提供的任何帮助将不胜感激。(我正在使用 PHP 和 Javascript)

4

1 回答 1

3

假设以下是您的 sender.php 代码(一个 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;

第二个用户的javascript代码如下

var evtSource = new EventSource("sender.php");
evtSource.addEventListener("notify", function(e) {
var obj = JSON.parse(e.data);
var r_msg = obj.msg;

代码解释是

您可以为每个用户分配一个唯一的事件名称,然后从发件人那里您只需将数据发送到该特定用户的事件名称,无论您想要什么。在上面的代码中,第一个用户将只收到发送到 ping 事件的消息,与第二个用户相同,它将收到发送到通知事件的消息。在上面的代码中,事件名称和消息是静态的,但您可以根据您的要求将其设为动态。

希望这会帮助你。

于 2013-04-24T05:59:33.850 回答