| | |
| | | import ( |
| | | "basic.com/valib/go-aiot.git/aiotProto/aiot" |
| | | "basic.com/valib/go-aiot.git/client" |
| | | "basic.com/valib/logger.git" |
| | | "errors" |
| | | "go.uber.org/zap" |
| | | ) |
| | |
| | | // 错误信息 |
| | | errMsg := "Cluster have not registered" |
| | | // 记录日志 |
| | | logger.Error(errMsg, zap.Any("msg", msg)) |
| | | cli.Logger.Error(errMsg, zap.Any("msg", msg)) |
| | | cli.Close() |
| | | // 移除集群 |
| | | Srv.RemoveCluster(msg.SenderId) |
| | |
| | | msg.SenderId = Srv.serverId |
| | | msg.Receiver = aiot.RECEIVER_TO_MASTER |
| | | msg.ReqType = aiot.REQ_TYPE_RESPONSE |
| | | msg.MsgProto = cli.GetMsgProto(msg.MsgProto.MsgId) |
| | | msg.MsgProto = client.GetMsgProto(msg.MsgProto.MsgId) |
| | | _ = cli.WriteBody(msg) |
| | | // 上报到服务端 |
| | | go Srv.serverCallBack.OnHeartBeat(cli, msg) |
| | |
| | | |
| | | // 实现OnRegister |
| | | func (c *Clients) OnRegister(cli *client.Client, msg *aiot.Protocol) error { |
| | | Srv.RegisterDevice(msg, cli) |
| | | Srv.RegisterDevice(cli, msg) |
| | | go Srv.serverCallBack.OnRegister(cli, msg) |
| | | msgFeedBack := &aiot.Protocol{ |
| | | Receiver: aiot.RECEIVER_TO_MASTER, |
| | | SenderId: Srv.serverId, |
| | | DeviceProto: msg.DeviceProto, |
| | | MsgType: aiot.MSG_TYPE_REGISTER, |
| | | ReqType: aiot.REQ_TYPE_RESPONSE, |
| | | MsgProto: client.GetMsgProto(msg.MsgProto.MsgId), |
| | | Data: msg.Data, |
| | | } |
| | | _ = cli.WriteBody(msgFeedBack) |
| | | return nil |
| | | } |
| | | |
| | |
| | | return nil |
| | | } |
| | | |
| | | // 实现OnClose |
| | | func (c *Clients) OnClose(cli *client.Client) { |
| | | if Srv.IsMasterOnline(cli.GetDeviceId()) { |
| | | Srv.RemoveCluster(cli.GetDeviceId()) |
| | | } |
| | | go Srv.serverCallBack.OnClose(cli) |
| | | return |
| | | } |
| | | |
| | | // 实现OnDataReport |
| | | func (c *Clients) OnDataReport(cli *client.Client, msg *aiot.Protocol) error { |
| | | go Srv.serverCallBack.OnDataReport(cli, msg) |
| | |
| | | go Srv.serverCallBack.OnDeviceControl(cli, msg) |
| | | return nil |
| | | } |
| | | |
| | | // 实现OnClose |
| | | func (c *Clients) OnClose(cli *client.Client) { |
| | | if Srv.IsMasterOnline(cli.GetDeviceId()) { |
| | | Srv.RemoveCluster(cli.GetDeviceId()) |
| | | } |
| | | go Srv.serverCallBack.OnClose(cli) |
| | | return |
| | | } |