我有一个PHP应用程序,人们可以在其中发布不同的状态消息。我想在里面实现实时通知。
也就是说,如果用户发布了一些内容,其他访问该网站的用户将立即在屏幕上收到关于新帖子的提示。我听说你可以用node.js来实现它。但我不知道它到底是怎么实现的。如有任何帮助,我们将不胜感激。
我建议你看看socket.io。客户端向节点发送消息,节点可以保存到db(或通过对php应用程序的RESTful调用转发)并通知所有客户端。
它不是php,而是nodejs和js。享受;)
示例
服务器:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
客户端
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
您必须在on("yourEvent", function() { ...
中编写您希望在客户端中执行的操作
您可以使用长轮询技术。Long polling
是用于描述以下技术的名称:
- 发出AJAX请求(使用jQuery等javascript框架)
- 服务器等待请求的数据可用,循环并休眠(服务器端PHP脚本)
- 此循环在数据返回到客户端并进行处理后重复(通常在AJAX请求的onComplete回调函数中)
或
试试像Commet这样的服务器端推送技术。