我正在使用Node.js服务器为Android构建聊天应用程序。
当用户想要打开新的主题/聊天组时,几乎不需要做任何事情:
1.使用亚马逊(AWS)SNS SDK创建主题
2.使用他们的AWS端点ARN将每个请求的用户订阅到此主题。
我的问题在于Node.js AWS SDK,但它对应于AWS Android API以及它们目前在此问题上的工作方式相同。
问题1:
如何在一次通话中订阅多个端点ARN?
目前,我必须在每次“订阅请求”之后等待,以确保它在我提交下一个之前成功。这需要花费太多时间和精力。
问题2:
如果用户想要取消订阅整个应用,我会从AWS-SNS中删除他/她的端点
但是,他们对各种主题的订阅仍然存在!如此有效,他们仍然会收到所有数据/消息(当然没有应用程序可以接收它)。
如果需要任何代码,请告诉我 *我想也许我会把一个带有所有ARN的json'd列表,但它没有用。
答案 0 :(得分:0)
当前,AWS开发工具包不接受Arns数组。
可能的解决方案是使用大量请求,但是根据AWS文档,此操作被限制为每秒100个事务(TPS)。 这是Node.js API调用的示例。
const subscribe = async (TopicArn, arns) => {
try {
const promises = []
arns.forEach((Endpoint) => {
promises.push(sns.subscribe({
Protocol: 'application',
TopicArn,
Endpoint,
}).promise())
})
await Promise.all(promises)
} catch (e) {
console.error(e)
}
}