我正在尝试设置一个订阅者来记录创建新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,
};
},
};
},
}),MessageList组件:
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);发布于 2021-01-21 13:58:04
最后改成了graphql-ws,换成了subscriptions-transport-ws。
解决了我的问题。
https://stackoverflow.com/questions/65821733
复制相似问题