Files
chain33-dtalk/service/record/answer/server/grpc/body.go
2022-03-17 15:59:24 +08:00

70 lines
1.4 KiB
Go

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
}