2016-11-16 13 views
0

apolloで働くサブスクリプションを取得する作業。 Webソケットが正しく設定されていて、接続していることがわかります.pubsubモジュールに流れ込むのがわかります。私がパブリッシュするときにサーバーが応答を引き起こさないので、私が購読する方法に何かがあると思います。Apollo Subscription 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 Managerおよびセットアップ機能:私の突然変異で

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解決機能またはセットアップ機能が起動しないようにしますか?

私はこのギタントの例と中規模の記事を調べましたが、この最後の部分を動作させるのにまだ苦労しています。

何か助けや洞察力が素晴らしいです!

+0

サブスクリプションは最初はデバッグするのが難しい場合がありますので、できるだけシンプルにします。 setupFunctionsを削除しようとしましたか?チャンネルがトップレベルのサブスクリプションフィールドと同じ名前を持つ場合、それらはオプションであると思います。 – helfer

+0

セットアップ機能を削除しようとしました。まだダイスはありません。私はおそらく私のgraphqlサブスクリプションクエリが間違って設定されていると思っているが、わからない。掘り続けるつもりです。 – Justin

答えて

2

私は自分の問題をどのように解決したかについてより良い回答を得たいと思っています。私は物事を調整してきたし、私はそれを動作させるために何をしたのか分からない。 Meh ...:/

この方法でどこかで動かない場合は、graphqlサブスクリプションパッケージを参照してください。あなたは物事がどのように動くかについて、少なくともより良い考えを持っています。イベントサブスクリプションが起こっている

ブラウザが正しく接続されていれば、他のエラーが発生した場合でもブラウザが応答します。彼の助けを願って!安全な旅!