2016-11-16 76 views
0

工作獲取訂閱在阿波羅工作。我有我的網絡套接字設置正確,我可以看到我正在連接,因爲我看到它流入pubsub模塊。雖然我認爲訂閱方式有些問題,但由於服務器在發佈時沒有觸發響應。阿波羅訂閱PubSub不觸發監聽器

對任何有關命名的疑惑表示歉意,因爲我將它用於所謂的訂閱。

Graphql認購

subscription subscriptionsUpdated($userId: String!){ 
    subscriptionsUpdated(user: $userId, type:ROOM, open:true) { 
     id, 
     parent{ 
      ... on Rooms{ 
      id 
      } 
     } 
    } 
    } 

GraphQLType

subscription: new GraphQLObjectType({ 
    name: `subscriptions`, 
    fields: { 
     subscriptionsUpdated:{ 
     type:Subscriptions.type, 
     args:{ 
      parent: { type: GraphQLString}, 
      type:{ type: ContentTypes }, 
      open: {type: GraphQLBoolean }, 
      user:{type: GraphQLString }, 
     }, 
     resolve:(source, args)=>{ 
      console.log('it worked and stuff'); 
      return {}; 
     } 
     }, 
    } 
    }) 

Susbscription管理器和設置功能:

import schema from '../graphql/index.js'; 
const subscriptionManager = new SubscriptionManager({ 
    schema, 
    pubsub, 
    setupFunctions: { 
    subscriptionsUpdated: (options, args) => ({ 
     subscriptionsUpdated: (comment)=>{ 
     return true; 
     }, 
    }), 
    }, 
}); 

在我的突變(我可以看到這個射擊)

pubsub.publish('subscriptionsUpdated', doc); 

隨着事件觸發,應該不是subscriptionsUpdated解析函數/或設置函數觸發嗎?

我已經研究了關於該主題的githunt示例和中級帖子,但仍然努力爭取最後一部分工作。

任何幫助或見解都會很棒!

+0

訂閱可能有點棘手最初調試,所以我會盡可能簡化。你有沒有嘗試刪除setupFunctions?如果頻道與頂級訂閱字段名稱相同,我認爲它們是可選的。 – helfer

+0

是的,試圖刪除設置功能。仍然沒有骰子。我想也許我的graphql訂閱查詢設置錯誤,但不知道。繼續挖掘。 – Justin

回答

2

我希望我能更好地回答我如何解決我的問題。我一直在調整的東西,我不知道我做了什麼,使其工作。嗯......:/

雖然如果你確實遇到這樣的問題,可以跳入graphql訂閱包。你至少會對事物的移動有個更好的認識。

如果正確連接您的瀏覽器將與您遇到任何其他錯誤響應。希望他的幫助!安全的旅程!