Javascript PHP-向所有客户端发送异步广播消息
我目前正在创建一个网站,它有点像一个图像板,我的朋友可以在上面发布各种内容 我想在PHP(服务器端)和JavaScript/JQuery(客户端)中实现一个函数,在发布新内容时提醒当前正在查看此站点的每个客户端 我如何实现这种“广播”功能?我是否必须用JS打开一个套接字并检查我的PHP页面发送的任何数据流?Javascript PHP-向所有客户端发送异步广播消息,javascript,php,jquery,Javascript,Php,Jquery,我目前正在创建一个网站,它有点像一个图像板,我的朋友可以在上面发布各种内容 我想在PHP(服务器端)和JavaScript/JQuery(客户端)中实现一个函数,在发布新内容时提醒当前正在查看此站点的每个客户端 我如何实现这种“广播”功能?我是否必须用JS打开一个套接字并检查我的PHP页面发送的任何数据流? (我以前从未在JS中使用过套接字,但我有一种不好的感觉,我必须为每个客户端打开一个新端口,这将打开我的网站…) 我想知道,您将如何实现这样一种方法,以及您是否有关于这个主题的参考文章。我认
(我以前从未在JS中使用过套接字,但我有一种不好的感觉,我必须为每个客户端打开一个新端口,这将打开我的网站…)
我想知道,您将如何实现这样一种方法,以及您是否有关于这个主题的参考文章。我认为这是一条可行之路。这将使javascript监听来自服务器的消息。您可以选择退回到长轮询。这一页可能会有帮助 JS
var source=neweventsource(“demo_sse.php”);
source.onmessage=函数(事件){
document.getElementById(“结果”).innerHTML+=event.data+“
”;
};
if(typeof(EventSource)=“未定义”){
//无SSE支持-退回到长轮询
}
PHP(demo_sse.PHP)
基本上,PHP和Javascript不能做到这一点
您可以将NodeJS与PHP结合使用,向客户端发送推送通知
下面是github上的源代码示例:
在php文件夹中:
- html是一个连接到服务器端口8000并侦听来自服务器的消息的客户端
- php接收到要推送到所有客户端的消息,收到消息后,对端口3000进行CURL/notify
在节点文件夹中:
- Node.js侦听两个端口
- 3000:侦听本地端口,接收要推送到所有客户端的消息
- 8000:侦听公共端口,将所有消息推送到客户端
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
if(typeof(EventSource) === "undefined") {
// NO SSE Support - Fall back to long-polling
}
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>