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 不适用于新窗口的主要内容,如果未能解决你的问题,请参考以下文章

res.cookie 不适用于 apollo-server-express

Apollo useSubscription 不适用于新窗口

readQuery 不适用于 Apollo 和 GraphQL 应用程序中的分页

Apollo 客户端订阅适用于 Playground,但不适用于 Expo 应用程序

$substr 不适用于 mongodb compass 社区

Vue Apollo 订阅未更新查询