Apollo useSubscription 不适用于新窗口

Posted

技术标签:

【中文标题】Apollo useSubscription 不适用于新窗口【英文标题】:Apollo useSubscription doesn't work for new windows 【发布时间】:2020-09-28 04:51:18 【问题描述】:

这是我第一次使用 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】:

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

【讨论】:

以上是关于Apollo useSubscription 不适用于新窗口的主要内容,如果未能解决你的问题,请参考以下文章

@apollo/react-hooks 中的 `useSubscription` 方法加载卡住

使用`react-apollo-hooks`和`useSubscription`钩子时如何避免“自动更新”缓存

如何在 useSubscription 挂钩中更新订阅变量 - Apollo v3

Apollo useSubscription 挂钩不发出新数据

Apollo + Angular 突变不适用于变量

我的突变适用于 Amplify,但不适用于 Apollo。为啥?