Could you also post the logs when you run the non-working version? On Thursday, April 15, 2021 at 3:00:55 AM UTC-7 kortschak wrote:
> I am trying to set up a toy to understand Google's Pub/Sub service Go > client API. I have had no trouble with publishing and have a local > emulator for the Google Scheduler service to build against, but I am > having a lot of trouble getting subscriptions to work. > > I am able get a subscription to work with messages received if I first > create the topic using the Python example code. > > This is the python from[1]: > ``` > from google.cloud import pubsub_v1 > > publisher = pubsub_v1.PublisherClient() > subscriber = pubsub_v1.SubscriberClient() > topic_path = publisher.topic_path(project, topic) > subscription_path = subscriber.subscription_path(project, subID) > > # Wrap the subscriber in a 'with' block to automatically call close() > to > # close the underlying gRPC channel when done. > with subscriber: > subscription = subscriber.create_subscription( > request={"name": subscription_path, "topic": topic_path} > ) > ``` > > However, when I do what I understand to be the equivalent Go code, I am > unable to receive any messages. > > This is what I take to be the equivalent Go code. > ``` > client, err := pubsub.NewClient(ctx, project) > if err != nil { > log.Fatalf("failed to create pubsub client: %v", err) > } > > t, err := client.CreateTopic(ctx, topic) > if err != nil { > log.Fatalf("failed to create topic %q: %v", topic, err) > } > > s, err := client.CreateSubscription(ctx, subID, > pubsub.SubscriptionConfig{Topic: t}) > if err != nil { > log.Fatalf("failed to create subscription %q %q: %v", topic, > subID, err) > } > ``` > > In both cases the message receiver code is as follows, though in the > case where python sets up the topic, this is prefaced with `s := > client.Subscription(subID)` in place of the Go code above. > ``` > err = s.Receive(ctx, func(ctx context.Context, m *pubsub.Message) { > log.Printf("received: %#v", m) > m.Ack() > }) > ``` > > The complete code of the working toy (requiring python to set it up) is > here [2] and the non-working version is here [3]. > > thanks > Dan > > > [1] > > https://github.com/googleapis/python-pubsub/blob/b8352f91c63e0cb7d64c4d0e557651248cd301b5/samples/snippets/subscriber.py#L66-L89 > [2]https://play.golang.org/p/0kXLN8H-rCG > [3]https://play.golang.org/p/Fva4BYrtDXE > > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/c8c4d1a3-32b8-4169-9bfa-5e38babcd56bn%40googlegroups.com.