0

我正在尝试设置一个订阅者来记录一些关于创建新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);
4

1 回答 1

0

结束粉笔graphql-ws并切换到subscriptions-transport-ws

修复了我的问题。

于 2021-01-21T05:58:03.863 回答