我使用graphql实现了一个graphql服务器,该服务器通过websockets提供订阅。
当我使用websocket工具订阅时,wscat一切都按预期工作。
以下是服务器发布的数据的外观(<):
$wscat -c "ws://localhost:9876/subscriptions"
> { "query" : "subscription{resourceSubscription(hasTypes : []){id}}" }
< {"type":"subscription_success"}
< {"payload":{"data":{"resourceSubscription":{"id":"..."}}},"id":"1","type":"subscription_data"} (*1)JSON响应格式是从这教程中复制的。我也尝试过只发送“数据”块而不使用“有效负载”包装器。
对于graphiql,我使用了graphiql spring-boot-starter v7.1.0包。当我从graphiql发出订阅时,显示显示:
“在服务器发布后,您的订阅数据将出现在这里!”
graphiql将查询发送到websocket端点:
{“类型”:“connection_init”,“有效载荷”:{}{}{id“:”1“,”类型“:”开始“,”有效载荷“:{”查询“:”订阅.“,”变量“:null}
websocket是在服务器上创建的,新数据实际上被发布到已建立的websocket (如in *1)中,但是,它没有在石墨库中显示,传入的数据被完全忽略,提示保持不变。
有人知道为什么会这样吗?JSON响应的格式不正确吗?
发布于 2020-07-23 13:53:39
必要的响应类型是:{"type":"data",.}而不是{"type“:"subscription_data",.}
https://stackoverflow.com/questions/63034876
复制相似问题