首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Socket.IO和PHP推送通知

问使用Socket.IO和PHP推送通知
EN

Stack Overflow用户
提问于 2012-07-18 20:49:23
回答 1查看 7.7K关注 0票数 8

思想/上下文:

我正在考虑给我的用户一个很好的额外功能:我想添加推送通知。这是用例:

人们在他们的个人资料页面上有一本留言簿。当有人在用户的留言簿中发布消息时,该用户将收到推送通知(当然,如果他在线的话)。如果他不在网上,下次他上网时,我们就从DB中提取通知。

我正在考虑在Socket.IO运行在Node.JS服务器上时这样做。我当前的应用程序是用PHP构建的(所以投递等都是由PHP处理的)。

所有在线用户都将使用Socket.IO进行连接,以侦听自己的通知。它们的套接字将保存在服务器上的数组或散列中。

这就是我所想到的流程:

  1. UserA在UserB的留言簿中发布一条消息
  2. 使Socket.IO向UserB发出通知(如果是联机的,则由Socket.IO知道)
  3. 将消息保存在DB中

这里的问题是'make Socket.IO发出通知‘-部件。我需要一种通过PHP实现此功能的方法,因为我希望服务器发出此通知,而而不是发布消息的用户。你为什么要问?我希望防止恶意用户创建假通知。因此,在伪代码中,PHP应用程序如下所示:

代码语言:javascript
复制
// do some validations here ...

// This is the message that was posted
$message = array(
    'from' => 'UserA',
    'to' => 'UserB',
    'msg' => 'Hello you'
);

// Send a notification to the user by emitting an event
socketio_emit('notification', json_encode($message));

save_in_db($message);

问题:

你对此有何看法?是否有更好的方法来实现这个看似小的特性?另外,我将如何在PHP中实现socketio_emit(),换句话说:如何使用Socket.IO与Socket.IO服务器进行通信?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-28 10:10:22

我通过使用Express.js和CURL来发布新的通知来解决这个问题。Node.js服务器监听特定的URL,例如/new_notification。通过对URL使用CURL从我的new服务器发出一个POST请求,我可以添加新的通知并使用Socket.IO (都在同一个Node.js应用程序中)处理它们。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11550103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档