php socket 指定推送,使用Socket.IO和PHP推送通知

想法/背景:

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

人们在个人资料页面上有留言簿.当有人在用户的留言簿中发布消息时,该用户将收到推送通知(如果他是在线的话).如果他不在线,下次他上网时,我们只会从数据库中提取通知.

我正在考虑使用在Node.JS服务器上运行的Socket.IO来做这件事.我当前的应用程序是用PHP构建的(因此发布等由PHP处理).

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

这是我想到的流程:

> UserA在UserB的留言板中发布消息

>让Socket.IO向UserB发出通知(如果在线,则为Socket.IO所知)

>将消息保存在DB中

这里的问题是’make Socket.IO发出通知’部分.我需要一种方法来从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服务器通信?

非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值