package natsClient import ( "server/pb" "github.com/gogo/protobuf/proto" "github.com/liangdas/mqant/log" "github.com/nats-io/nats.go" ) type ReloadNatsImp struct { f func(*pb.ReloadGameConfig) } // 新建一个reload监听 func NewReloadNats(conn *nats.Conn, f func(*pb.ReloadGameConfig)) { base := NewNatsClient() base.Topic = TopicReloadConfig r := &ReloadNatsImp{f: f} base.NatsImp = r base.Conn = conn go func() { err := base.OnRequestHandle() if err != nil { log.Error("newClientDissconnectNatsImp OnRequestHandle error:%v", err) } }() } func (r *ReloadNatsImp) OnMsgCallBack(m *nats.Msg) { req := &pb.ReloadGameConfig{} err := proto.Unmarshal(m.Data, req) if err != nil { log.Error("ReloadNatsImp OnMsgCallBack error %v", err) return } log.Debug("ReloadNatsImp:%+v", req) r.f(req) }