[英]Push notifications using Socket.IO and PHP
想法/背景:
我想给我的用户一个不错的额外的功能:我要添加推送通知。 这是用例:
人们在个人资料页面上有留言簿。 当有人在用户的留言簿中发布消息时,该用户将收到推送通知(如果他在线的话)。 如果他不在线,下次他上网时,我们只会从数据库中提取通知。
我正在考虑使用在Node.JS服务器上运行的Socket.IO来做这件事。 我当前的应用程序是用PHP构建的(所以发布等由PHP处理)。
所有在线用户都将使用Socket.IO进行连接,以收听他们自己的通知。 它们的套接字将保存在服务器上的数组或哈希中。
这是我想到的流程:
这里的问题是' make Socket.IO发出通知 '-part。 我需要一种方法来从PHP执行此操作,因为我希望服务器发出此通知而不是发布消息的用户 。 你为什么问? 我想阻止恶意用户创建虚假通知。 所以在伪代码中PHP应用程序看起来像这样:
// 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()
,换句话说:如何使用PHP与Socket.IO服务器通信?
非常感谢!
我通过使用Express.js和CURL发布新通知来解决这个问题。 Node.js服务器侦听特定的URL,例如/ new_notification。 从我的网络服务器使用CURL向该URL发出POST请求,我可以添加新通知并使用Socket.IO处理它们(所有这些都在同一个Node.js应用程序中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.