Fetch the repository succeeded.
package main
import (
"log"
"time"
"gitee.com/lwj8507/light-protoactor-go/actor"
"gitee.com/lwj8507/light-protoactor-go/remote"
"github.com/AsynkronIT/goconsole"
)
type watch struct {
}
func main() {
timeout := 5 * time.Second
remote.Start("127.0.0.1:8081")
props := actor.FromFunc(func(ctx actor.Context) {
switch msg := ctx.Message().(type) {
//case *actor.Started:
// log.Println("Local actor started")
// remotePID, err := remote.SpawnNamed("127.0.0.1:8080", "myRemote", "remote", timeout)
// if err != nil {
// log.Print("Local failed to spawn remote actor")
// return
// }
// log.Println("Local spawned remote actor")
// ctx.Watch(remotePID)
// log.Println("Local is watching remote actor")
case *watch:
log.Println("Local actor started")
remotePID, err := remote.SpawnNamed("127.0.0.1:8080", "myRemote", "remote", timeout)
if err != nil {
log.Print("Local failed to spawn remote actor")
return
}
log.Println("Local spawned remote actor")
ctx.Watch(remotePID)
log.Println("Local is watching remote actor")
case *actor.Terminated:
log.Printf("Local got terminated message %+v", msg)
}
})
pid := actor.Spawn(props)
var input string
var err error
var sendMsg = &watch{}
loop:
for {
input, err = console.ReadLine()
if err != nil {
break loop
}
switch input {
case "exit", "quit", "bye":
break loop
default:
actor.Tell(pid, sendMsg)
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。