github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/23_proto_actor/remoteadvertisedaddress/node1/main.go (about)

     1  package main
     2  
     3  import (
     4  	console "github.com/AsynkronIT/goconsole"
     5  	"github.com/AsynkronIT/protoactor-go/actor"
     6  	"github.com/AsynkronIT/protoactor-go/examples/remotebenchmark/messages"
     7  	"github.com/AsynkronIT/protoactor-go/remote"
     8  	"log"
     9  )
    10  
    11  func main() {
    12  	remote.Start("127.0.0.1:8081", remote.WithAdvertisedAddress("localhost:8081"))
    13  	remotePid := actor.NewPID("127.0.0.1:8080", "remote")
    14  
    15  	rootContext := actor.EmptyRootContext
    16  	props := actor.
    17  		PropsFromFunc(func(context actor.Context) {
    18  			switch context.Message().(type) {
    19  			case *actor.Started:
    20  				message := &messages.Ping{}
    21  				context.Request(remotePid, message)
    22  
    23  			case *messages.Pong:
    24  				log.Println("Received pong from sender")
    25  
    26  			}
    27  		})
    28  
    29  	rootContext.Spawn(props)
    30  
    31  	console.ReadLine()
    32  }