这是我第一次使用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);
}
}
}
};
答案 0 :(得分:1)
您可以使用Chrome开发工具检查useSubscription
是否正确连接。在Chrome DevTools的“网络”标签中,您应该将过滤器切换到WS,以查看和调试Apollo GraphQL订阅。您应该阅读it。