[英]Push notifications in PHP using Amazon SNS/SQS?
在我的网站上,我想做一些像Stackoverflow这样的评论推送通知。 亚马逊SNS / SQS似乎提供了一个框架来实现这一点,但我很难在网上找到任何超出“hello world”等级的代码/解释。
从阅读AWS SNS / SQS文档看起来我需要以下内容:
逻辑:
发布评论的页面上的PHP(http://mysite.com/postCommentOrAnswer.php):
$comment=$_POST['comment']; //posted comment
require_once 'application/third_party/AWSSDKforPHP/sdk.class.php';
$sns = new AmazonSNS();
$response = $sns->create_topic('SO-like-question-12374940'); //create topic
$response = $sns->publish(
'arn:aws:sns:us-east-1:9876543210:SO-like-question-12374940',
$comment
); //publish comment
$response = $sns->subscribe(
'arn:aws:sns:us-east-1:9876543210:SO-like-question-12374940',
'https ',
'https://mysite.com/notificationsReceiver'
); // Subscribe to notifications
收到通知的页面上的PHP(http://mysite.com/notificationsReceiver.php):
no idea, thoughts?
显然,这并不是一个完整的演示,可能有一些不正确的函数调用,但我想知道是否有人可以帮助建立这个?
您的评论意味着您没有与SQS结合,所以我正在回答MySQL解决方案。
除非你处理的是如此多的流量,否则消息实际上会排队,我建议只使用简单的MySQL表方法。
我有一个带有MySQL通知表的站点,如下所示:
CREATE TABLE `notification` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`notification_type` ENUM('inline','popup') NOT NULL DEFAULT 'inline',
`html` TEXT NOT NULL,
`entered_date` DATETIME NOT NULL,
`display_date` DATETIME NOT NULL,
`show_once` TINYINT(1) NOT NULL DEFAULT '0',
`closable` TINYINT(1) NOT NULL DEFAULT '1',
`destroy_on_close` TINYINT(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
INDEX `user_id` (`user_id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
在页面加载时检查该表,并根据通知数据显示适当的通知。 插入是在网站上发生各种动作或事件时完成的。
我有超过10,000名用户,到目前为止,这种方法还没有被证明是该网站的瓶颈。 我也不希望它很快到来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.