[英]GraphQL & Using a nested subscribe function
我正在編寫一個 graphql 訂閱服務器。 如果我編寫一個查詢,將解析器嵌套在另一個中是沒有問題的,所以查詢看起來像這樣:
query {
messages {
privateMessage {
id
message
userId
}
}
}
所以首先執行messages
解析器,然后執行privateMessage
解析器。 我想知道訂閱是否可以實現相同的結構,所以它看起來像這樣:
subscription {
messages {
privateMessage {
id
message
userId
}
}
}
編輯:
這是我擁有的當前根訂閱模式:
const RootSubscriptions = new GraphQLObjectType({
name: 'RootSubscriptions',
fields: {
privateMessage: {
type: PrivateMessage.type,
resolve: PrivateMessage.resolve,
subscribe: PrivateMessage.subscribe,
},
flaggedMessage: {
type: FlaggedMessage.type,
resolve: FlaggedMessage.resolve,
subscribe: FlaggedMessage.subscribe,
},
teamMessage: {
type: TeamMessage.type,
resolve: TeamMessage.resolve,
subscribe: TeamMessage.subscribe,
},
},
})
我希望它看起來像這樣:
const RootSubscriptions = new GraphQLObjectType({
name: 'RootSubscriptions',
fields: {
messages: {
type: new GraphQLObjectType({
name: 'MessagesSubType',
fields: {
privateMessage: {
type: PrivateMessage.type,
resolve: PrivateMessage.resolve,
subscribe: PrivateMessage.subscribe,
},
flaggedMessage: {
type: FlaggedMessage.type,
resolve: FlaggedMessage.resolve,
subscribe: FlaggedMessage.subscribe,
},
teamMessage: {
type: TeamMessage.type,
resolve: TeamMessage.resolve,
subscribe: TeamMessage.subscribe,
},
}
})
}
},
})
編輯結束
問題是我讓messages
訂閱 function 運行,但不是privateMessage
訂閱 function 運行。 很想知道它是否可能以及如何實現它。 由於我使用 node.js 編寫它,因此我會很欣賞 js 中的示例,但任何指向解決方案的指針都會有所幫助。 提前致謝!
根據我對 graphQl 訂閱如何工作的理解,您可能對嵌套訂閱不太走運。 我還沒有找到支持這一點的支持文檔,但在我自己的實驗中,我還沒有發現它可以工作。 在這種情況下,我建議您有一個消息根訂閱,它需要訂閱類型的參數,在這種情況下是私有、標記或團隊消息的枚舉。 您可以使用 switch case 來確定訂閱並做出相應的反應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.