按使用Amazon SNS / SQS在PHP通知?(Push notifications in P

2019-06-26 08:54发布

在我的地盘我想要做的像做#2评论推送通知。 亚马逊SNS / SQS似乎提供了一个框架,这样做,但我很难找到网络上的任何东西任何代码/解释超出了一个“Hello World”等同。

从阅读AWS SNS / SQS文档看起来我需要以下条件:

逻辑:

  1. 发表评论/回答新问题
  2. 创建主题(为第一评论/只回答)
  3. 发布消息
  4. 订阅主题

页面上的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?

显然,这不靠近是一个完整的示范,可能有一些不正确的函数调用,但我不知道是否有人也许能帮助建立在这?

Answer 1:

您的评论暗示,你不执着于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个用户,到目前为止,这种方法还没有被证明是该网站的瓶颈。 我不指望它在短期内,无论是。



文章来源: Push notifications in PHP using Amazon SNS/SQS?