Apollo useSubscription不适用于新窗口

时间:2020-06-09 05:01:18

标签: reactjs apollo react-apollo apollo-client graphql-subscriptions

这是我第一次使用useSub,我注意到尽管后端将其响应发送给客户端(至少console.log证明是这样)。使用useSub的客户端不执行任何操作。我通常在查询中使用subscribeToMore,但是对于这项工作,我只想获取最新信息。有没有办法检查useSub是否正确连接?还是在“ @ apollo / react-hooks”中损坏了:“ ^ 3.1.3”

查询

export const INCOMING_VIDEO_CHAT = gql`
  subscription {
    incomingVideoChat {
      rn
      p
    }
  }
`;

客户

const { data, loading } = useSubscription(INCOMING\_VIDEO\_CHAT, {
onSubscriptionData: ({ subscriptionData }) => {
console.log(subscriptionData);
}
});

服务器:

module.exports = {
type: chatInfoType,
subscribe: () => pubsub.asyncIterator(INCOMING\_VIDEO\_CHAT),
async resolve(payload, { }, req) {
if (auth.isAuthenticated(req)) {
if (!payload) {
return;
}
const { userID, rn, p } = payload;
  try {
    if (req.id === userID) {
      return { rn, p };
    } else {
      return;
    }
  } catch (e) {
    throw new Error(e);
  }
}
}
};

1 个答案:

答案 0 :(得分:1)

您可以使用Chrome开发工具检查useSubscription是否正确连接。在Chrome DevTools的“网络”标签中,您应该将过滤器切换到WS,以查看和调试Apollo GraphQL订阅。您应该阅读it