javascript-具有多个用户的服务器发送的事件
作者:互联网
我正在尝试使用新的Server-Sent Events API编写聊天程序,但是,在弄清楚如何向不同的用户发送不同事件时遇到了麻烦.由于所有代码都来自一个PHP文件,因此我不确定将特定事件仅发送给每个用户的最佳方法.您能提供的任何帮助将不胜感激. (我正在使用PHP和Javascript)
解决方法:
可以说以下是您的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事件的消息,与第二个用户相同,它将得到发送到通知事件的消息.在上面的代码中,事件名称和消息是静态的,但是您可以根据需要将其设置为动态.
希望这对您有所帮助.
标签:server-sent-events,html5,javascript,php 来源: https://codeday.me/bug/20191031/1972163.html