Amazon Appsync 的订阅与 Amazon SNS 有何不同?哪一个是聊天应用程序的正确工具?
How is Amazon Appsync's subscription different from Amazon SNS? Which one is the right tool for a chat application?
AFAIK,两者之间的一个主要区别是 Appsync 使用 MQTT 实现并强调实时通知,而 SNS 更像是一种通用的 pub/sub 服务。
Appsync 的实时通知部分似乎是聊天应用程序的正确工具。但是,使用 Appsync,如果未建立连接,我将无法向用户推送通知(?)
我希望无论应用程序是否打开,都能实时通知用户。为此目的的正确工具是什么?
一般来说,您可能会有更多 "ready-to-use" 解决方案来使用 AppSync 进行聊天,例如https://aws.amazon.com/blogs/mobile/building-a-serverless-real-time-chat-application-with-aws-appsync/
使用 SNS 可能会提供更大的灵活性,但代价是您需要花费更多时间来编写自定义代码。
您说得对,AppSync 本身不支持后台应用程序的推送通知;为此,您需要连接 SNS 之类的东西。您可以使用 AppSync Lambda 解析器将 AppSync 与 SNS 结合起来。
根据您的要求,即如果系统通知显示新消息不是必需的,您还可以在应用程序启动时查询 AppSync,以获取在客户端断开连接时收到的聊天消息。
AFAIK,两者之间的一个主要区别是 Appsync 使用 MQTT 实现并强调实时通知,而 SNS 更像是一种通用的 pub/sub 服务。
Appsync 的实时通知部分似乎是聊天应用程序的正确工具。但是,使用 Appsync,如果未建立连接,我将无法向用户推送通知(?)
我希望无论应用程序是否打开,都能实时通知用户。为此目的的正确工具是什么?
一般来说,您可能会有更多 "ready-to-use" 解决方案来使用 AppSync 进行聊天,例如https://aws.amazon.com/blogs/mobile/building-a-serverless-real-time-chat-application-with-aws-appsync/
使用 SNS 可能会提供更大的灵活性,但代价是您需要花费更多时间来编写自定义代码。
您说得对,AppSync 本身不支持后台应用程序的推送通知;为此,您需要连接 SNS 之类的东西。您可以使用 AppSync Lambda 解析器将 AppSync 与 SNS 结合起来。
根据您的要求,即如果系统通知显示新消息不是必需的,您还可以在应用程序启动时查询 AppSync,以获取在客户端断开连接时收到的聊天消息。