使用node.js在PHP应用程序中显示消息的实时通知


Using node.js to show realtime notification of messages in a PHP application

我有一个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是用于描述以下技术的名称:

  1. 发出AJAX请求(使用jQuery等javascript框架)
  2. 服务器等待请求的数据可用,循环并休眠(服务器端PHP脚本)
  3. 此循环在数据返回到客户端并进行处理后重复(通常在AJAX请求的onComplete回调函数中)

试试像Commet这样的服务器端推送技术。