Amazon SNS使用Java推送主题

我正在尝试在我的基于Java的网站上实现推送通知(使用Struts 1.x)。 目标是使类似Stackoverflow和其他站点的内容类似于在获取消息时实时通知用户。

我使用mysql作为我的数据库,Apache作为我的服务器,我正在考虑使用Amazon-SNS作为这些通知的框架,因为这就是该服务似乎的目的。

在“网站上”,不,这不是SNS真正做的事情。

SNS有两种不同的操作模式:

  • “主题” – 通过http(s),电子邮件地址,SQS队列和SMS设备(文本消息)向Web 服务器 (而非浏览器)的组合发送广播通知,确认他们订阅了SNS主题
  • “移动推送” – 将可寻址的推送通知直接发送到您编写的移动应用程序(而不是直接发送到Web浏览器)

对于浏览器的实时通知,请查看您正在查看的页面的来源,以了解它是如何完成的:

 

这看起来像一个websocket连接,由wss://标识(与https://对比)。 各种语言的websockets有各种各样的实现,允许你身边的组件与浏览器上运行的javascript进行交互,我建议这是与现代网络推送通知的标准机制最接近的事情。浏览器。

SNS没有为浏览器提供这种集成的function集,尽管它可能是内部用于将消息从您的应用服务器中继到您的websocket网关,因为SNS可以提供​​短期应用服务器和网关之间的缓冲区,或者向多个网关广播消息的能力,如果这是你实现它的方式……这样的优点是它会阻止app服务器受到不利影响网关过载或脱机。 理论上,websockets可以由应用程序服务器本身终止,因为它们通过HTTP开始连接,但是与http请求相比,典型的websocket连接的寿命更长,这可能会使它成为一个糟糕的组合。