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

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	proto "github.com/micro/go-micro/examples/service/proto"
     8  	"github.com/micro/go-micro/v2"
     9  	"github.com/micro/go-micro/v2/metadata"
    10  )
    11  
    12  type Greeter struct{}
    13  
    14  func (g *Greeter) Hello(ctx context.Context, req *proto.Request, rsp *proto.Response) error {
    15  	md, _ := metadata.FromContext(ctx)
    16  
    17  	// local ip of service
    18  	fmt.Println("local ip is", md["Local"])
    19  
    20  	// remote ip of caller
    21  	fmt.Println("remote ip is", md["Remote"])
    22  
    23  	rsp.Greeting = "Hello " + req.Name
    24  	return nil
    25  }
    26  
    27  func main() {
    28  	service := micro.NewService(
    29  		micro.Name("greeter"),
    30  	)
    31  
    32  	service.Init()
    33  
    34  	proto.RegisterGreeterHandler(service.Server(), new(Greeter))
    35  
    36  	if err := service.Run(); err != nil {
    37  		fmt.Println(err)
    38  	}
    39  }