这是我遇到的一个小问题,在文档中找不到太多信息。我正在尝试创建私人聊天消息。我们有以下代码来为用户订阅主题:
export const resolvers = {
Subscription: {
somethingChanged: {
subscribe: () => pubsub.asyncIterator('chat_messages'),
},
},
}
并发布
pubsub.publish('chat_messages', { somethingChanged: { sender_id: 1, receiver_id: 2, message: 'test' }});
我已使用 onConnect 验证用户是否已通过身份验证
const server = new ApolloServer({
typeDefs,
resolvers,
subscriptions: {
onConnect: (connectionParams, webSocket) => {
...
if (!authenticated) throw error
...
},
},
...
})
例如,当我想为用户订阅特定主题时,这很有效。但是我如何实现私人用户到用户的通信呢?我已经尝试过withFilter
但似乎无法实现用户特定的授权(关于消息)检查。