package grpc import ( "github.com/golang/protobuf/proto" comet "gitlab.33.cn/chat/im/api/comet/grpc" xproto "gitlab.33.cn/chat/imparse/proto" ) func noticeMsgData(channelType int32, from, target string, seq string, data []byte) ([]byte, error) { var p comet.Proto var err error p.Op = int32(comet.Op_SendMsg) p.Ver = 1 p.Seq = 0 eventProto := &xproto.Proto{ EventType: xproto.Proto_common, } comm := &xproto.Common{ ChannelType: xproto.Channel(channelType), Seq: seq, From: from, Target: target, MsgType: xproto.MsgType_Notice, Msg: data, } eventProto.Body, err = proto.Marshal(comm) if err != nil { return nil, err } p.Body, err = proto.Marshal(eventProto) if err != nil { return nil, err } bytes, err := proto.Marshal(&p) if err != nil { return nil, err } return bytes, nil } func signalBody(target string, tp xproto.SignalType, actionData []byte) ([]byte, error) { var p comet.Proto var err error p.Op = int32(comet.Op_SendMsg) p.Ver = 1 p.Seq = 0 eventProto := &xproto.Proto{ EventType: xproto.Proto_Signal, } noticeProto := &xproto.Signal{ Type: tp, } noticeProto.Body = actionData eventProto.Body, err = proto.Marshal(noticeProto) if err != nil { return nil, err } p.Body, err = proto.Marshal(eventProto) if err != nil { return nil, err } bytes, err := proto.Marshal(&p) if err != nil { return nil, err } return bytes, nil }