【发布时间】:2021-04-25 12:54:06
【问题描述】:
我正在尝试设置一个订阅者来记录一些关于创建新 Message 的输出。
目前使用 Urql,后端使用 ApolloServerExpress。
我收到来自我正在登录控制台的useSubscription 方法的错误:
message: "[Network] undefined"
name: "CombinedError"
我确定我的后端工作正常,因为我可以使用 Graphiql 游乐场进行订阅。 就前端而言,我几乎完全按照 Urql 文档中的示例进行操作。
WS 客户端:
const wsClient = createWSClient({
url: "ws://localhost:4000/graphql",
});
订户交换:
subscriptionExchange({
forwardSubscription(operation) {
return {
subscribe: (sink) => {
const dispose = wsClient.subscribe(operation, sink);
return {
unsubscribe: dispose,
};
},
};
},
}),
消息列表组件:
const newMessages = `
subscription Messages {
newMessage {
content
status
sender {
id
email
}
recipient {
id
email
}
}
}
`;
...
const handleSub = (messages: any, newMessage: any) => {
console.log("Messages: ", messages);
console.log("newMessages: ", newMessage);
};
const [res] = useSubscription({ query: newMessages }, handleSub);
console.log("Res: ", res);
【问题讨论】:
标签: graphql apollo subscriber urql