github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/event/srv/main.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/micro/go-micro/v2"
     7  	proto "github.com/micro/go-micro/v2/api/proto"
     8  	"github.com/micro/go-micro/v2/util/log"
     9  )
    10  
    11  // All methods of Event will be executed when a message is received
    12  type Event struct{}
    13  
    14  // Method can be of any name
    15  func (e *Event) Process(ctx context.Context, event *proto.Event) error {
    16  	log.Logf("Received event %+v\n", event)
    17  	// do something with event
    18  	return nil
    19  }
    20  
    21  func main() {
    22  	service := micro.NewService(
    23  		micro.Name("user"),
    24  	)
    25  	service.Init()
    26  
    27  	// register subscriber
    28  	micro.RegisterSubscriber("go.micro.evt.user", service.Server(), new(Event))
    29  
    30  	if err := service.Run(); err != nil {
    31  		log.Fatal(err)
    32  	}
    33  }