2017-06-11 7 views
3

javaを使用してpub/subからメッセージを読む方法を見つけることができません。Google Pub/Sub Javaの例

public static void main(String... args) throws Exception { 

     // Your Google Cloud Platform project ID 
     String projectId = ServiceOptions.getDefaultProjectId(); 

     // Your topic ID 
     String topicId = "my-new-topic-1"; 
     // Create a new topic 
     TopicName topic = TopicName.create(projectId, topicId); 
     try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { 
      topicAdminClient.createTopic(topic); 
     } 
} 

上記のコードは確かに、私がすることができますうまく機能して:私は新しいトピックを作成するには、このmainメソッドを実装し

<dependency> 
    <groupId>com.google.cloud</groupId> 
    <artifactId>google-cloud-pubsub</artifactId> 
    <version>0.17.2-alpha</version> 
</dependency> 

私は私のポンポンでこのMavenの依存関係を使用していますGoogleのクラウドコンソールを使用して作成した新しいトピックをご覧ください。

私は私のトピックにメッセージを書き込むために、次のmainメソッドを実装し:

public static void main(String a[]) throws InterruptedException, ExecutionException{ 
     String projectId = ServiceOptions.getDefaultProjectId(); 
     String topicId = "my-new-topic-1"; 

     String payload = "Hellooooo!!!"; 
     PubsubMessage pubsubMessage = 
        PubsubMessage.newBuilder().setData(ByteString.copyFromUtf8(payload)).build(); 

     TopicName topic = TopicName.create(projectId, topicId); 

     Publisher publisher; 
     try { 
      publisher = Publisher.defaultBuilder(
        topic) 
        .build(); 
      publisher.publish(pubsubMessage); 

      System.out.println("Sent!"); 
     } catch (IOException e) { 
      System.out.println("Not Sended!"); 
      e.printStackTrace(); 
     } 
} 

は今、私はこのメッセージが本当に送信されたかどうかを確認することはできませんよ。 トピックの購読を使用してメッセージリーダーを実装したいと思います。 誰かが、トピックからメッセージを読むことについて正しい、働いているJavaの例を私に示してもらえますか?

誰でも手伝ってもらえますか? ありがとうございます!

+1

ようこそ、スタックオーバーフロー!本、ツール、ソフトウェアライブラリ、チュートリアル、またはその他のオフサイトリソースを推薦するか、見つけようとする質問は、批判的な回答と迷惑メールを引き付ける傾向があるため、スタックオーバーフローのトピックではありません。代わりに、[問題を説明する](http://meta.stackoverflow.com/questions/254393)、これを解決するためにこれまでに何が行われているか。 –

+3

多分私ははっきりしませんでした。私はチュートリアル/本や外部リソースを探しているわけではありません。私はjava経由でpubsubからメッセージを読む方法の例を表すJavaコードのいくつかの行を探しています。私は私の質問を更新します。 –

+0

これは良いリンクです:https://cloud.google.com/pubsub/docs/quickstart-client-libraries#pubsub-quickstart-publish-javaにはReceiverの部分が表示されます。 –

答えて

1

Cloud Pub/Sub Pull Subscriber Guideには、トピックからメッセージを読み取るためのサンプルコードがあります。

+0

残念ながら、サンプルコードでは、クライアントAPIの使用方法についてはほとんど説明されていません。 – dankirkd

+0

サンプルコードは、メッセージを読み取る前に終了します。 – vdolez

+0

メインメソッドにサブスクライバを作成するコードを置くだけであれば、終了することが予想されます。 startAsyncメソッドはすぐに戻ります。あなたは//の代わりに何かを置く必要があります...あなたのメインスレッドを実行し続ける。 –

0

メッセージリーダーが加入者に注入されています。 codeのこの部分は、次のメッセージを処理します。

MessageReceiver receiver = 
    new MessageReceiver() { 
     @Override 
     public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) { 
     // handle incoming message, then ack/nack the received message 
     System.out.println("Id : " + message.getMessageId()); 
     System.out.println("Data : " + message.getData().toStringUtf8()); 
     consumer.ack(); 
     } 
    }; 
関連する問題