小编Ahm*_*hni的帖子

AppSync/Graphql 多个订阅还是多个 id 的一个订阅?

问题:我们正在尝试使用 AWS 产品 AppSync 制作聊天应用程序,我们希望获得最佳性能,但我们在 AppSync 和 Graphql 中面临实时订阅的问题,在某些情况下,单个用户需要处理数百个订阅我们认为这不是最佳解决方案,您有什么建议?

问题示例:

Mutation{
    addMessage(conversation_id=Int!, content:String!) : Message
}
Subscription{
   subscribeForNewMessages(convesration_id: Int!):Message
        @aws_subscribe(mutations: ["addMessage"])
}
Run Code Online (Sandbox Code Playgroud)

这种设计的问题在于,用户需要调用此订阅并继续收听每个对话,如果对话数量巨大,我们希望这会压倒客户端。

问题 :

Q1:我们正在努力实现的是一个订阅多个(conversation_id),这怎么可能?这些人(https://github.com/apollographql/apollo-client/issues/2633)正在谈论类似的事情,我们对其进行了测试但它不起作用,这是一个有效的解决方案吗?

Q2:关于放大;在同时收听数百个订阅时,放大会表现良好吗?它会合并订阅和 websockets 还是将它们分开处理?

Q3:您对这些设计有何评论?其中将有一个服务,它将为聊天参与者广播(使用客户端 ID 调用突变)消息,并且客户端将仅订阅单个频道。如下所示: src2 :用于聊天应用程序的 AWS AppSync src2 :订阅 AWS AppSync 中的群组/私人聊天列表

facebook chat real-time-data graphql aws-appsync

5
推荐指数
1
解决办法
2719
查看次数

标签 统计

aws-appsync ×1

chat ×1

facebook ×1

graphql ×1

real-time-data ×1