我目前正在使用 Symfony2 编写一个非常标准的 Apache/PHP/mySQL 网站,并考虑使用 Node 和 socket.io 来满足特殊需求:通知栏。没什么太花哨的,当您收到新朋友请求、新邮件时,通知会亮起……
我不太喜欢定期从 ajax 循环请求我的数据库;我希望此功能具有完全可扩展性并具有最小的占用空间。
因此,我正在考虑在我的数据库服务器端发出一个定期请求,将我在 Node 中的打开套接字列表提供给每个相关用户的推送通知。
我走对了吗?
干杯
您肯定走在正确的轨道上,但我建议将通知内容放在您的应用程序中,而不是轮询您的数据库。以好友请求为例,在好友请求发送时执行:
function send_friend_request($from, $to) {
$mysqli->whatever you do with that;
send_notification($to, 'You have a friend request!');
}
wheresend_notification
是一种向您的 nodejs 服务器发送 POST 请求的方法。您的 nodejs 服务器接收 POST 并将消息转发给正在收听的任何内容$to
。