diff --git a/config/config.yaml b/config/config.yaml index ca754a55b..84728c201 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -173,13 +173,13 @@ messagecallback: iOSPush: pushSound: "xxx" - badgeCount: 1 + badgeCount: true notification: groupCreated: conversation: - conversationChanged: 1 - unreadCount: 1 + conversationChanged: true + unreadCount: true offlinePush: switch: true title: "create group title" @@ -190,8 +190,8 @@ notification: groupInfoChanged: conversation: - conversationChanged: 1 - unreadCount: 1 + conversationChanged: true + unreadCount: true offlinePush: switch: true title: "group info changed title" diff --git a/internal/api/group/group_application_response.go b/internal/api/group/group_application_response.go index ea38d45a1..3a7e9343c 100644 --- a/internal/api/group/group_application_response.go +++ b/internal/api/group/group_application_response.go @@ -27,6 +27,8 @@ type paramsGroupApplicationResponse struct { Type int32 `json:"type"` HandleStatus int32 `json:"handleStatus"` HandleResult int32 `json:"handleResult"` + + UserID string `json:"userID"` } func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq { diff --git a/internal/rpc/auth/user_register.go b/internal/rpc/auth/user_register.go index 5f7aa9023..3f5de7032 100644 --- a/internal/rpc/auth/user_register.go +++ b/internal/rpc/auth/user_register.go @@ -10,9 +10,6 @@ import ( func (rpc *rpcAuth) UserRegister(_ context.Context, pb *pbAuth.UserRegisterReq) (*pbAuth.UserRegisterResp, error) { log.Info("", "", "rpc user_register start, [data: %s]", pb.String()) - //if len(pb.UID) == 0 { - // pb.UID = utils.GenID() - //} if err := im_mysql_model.UserRegister(pb); err != nil { log.Error("", "", "rpc user_register error, [data: %s] [err: %s]", pb.String(), err.Error()) return &pbAuth.UserRegisterResp{Success: false}, err diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 640309c91..1f2737bf1 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + immysql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -189,49 +189,7 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) default: return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) - } - -} - -type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` -} - -func CreateGroupNotification(sendID string, creator im_mysql_model.User, group im_mysql_model.Group, memberList []im_mysql_model.GroupMember) { - var msg WSToMsgSvrChatMsg - msg.OperationID = utils.OperationIDGenerator() - msg.SendID = sendID - msg.RecvID = group.GroupId - msg.ContentType = constant.CreateGroupTip - msg.SessionType = constant.GroupChatType - msg.MsgFrom = constant.SysMsgType - - var groupCreated open_im_sdk.GroupCreatedTips - groupCreated.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(groupCreated.Group, group) - groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupCreated.Creator, creator) - for _, v := range memberList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&groupMemberInfo, v) - groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) - } - var tips open_im_sdk.TipsComm - tips.Detail = utils.StructToJsonString(groupCreated) - tips.DefaultTips = creator.Name + " " + config.Config.DefaultTips.GroupCreatedTips - msg.Content = utils.StructToJsonString(tips) - Notification(&msg, false) -} - -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool) { - } func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { @@ -245,6 +203,7 @@ func GetMsgID(sendID string) string { t := time.Now().Format("2006-01-02 15:04:05") return t + "-" + sendID + "-" + strconv.Itoa(rand.Int()) } + func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.UserSendMsgResp, error) { replay.ErrCode = errCode replay.ErrMsg = errMsg @@ -254,6 +213,7 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod replay.SendTime = sendTime return replay, nil } + func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) @@ -278,3 +238,240 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i return true } + +type NotificationMsg struct { + SendID string + RecvID string + Content []byte + MsgFrom int32 + ContentType int32 + SessionType int32 + OperationID string +} + +func Notification(n *NotificationMsg, onlineUserOnly bool) { + +} + +//message GroupCreatedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo Creator = 2; +// repeated GroupMemberFullInfo MemberList = 3; +// uint64 OperationTime = 4; +//} +func GroupCreatedNotification(operationID string, creator *immysql.User, group *immysql.Group, memberList []immysql.GroupMember) { + var n NotificationMsg + n.SendID = creator.UserID + n.RecvID = group.GroupID + n.ContentType = constant.CreateGroupTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupCreated open_im_sdk.GroupCreatedTips + groupCreated.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupCreated.Group, group) + groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupCreated.Creator, creator) + for _, v := range memberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(&groupMemberInfo, v) + groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupCreated) + tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message ReceiveJoinApplicationTips{ +// GroupInfo Group = 1; +// PublicUserInfo Applicant = 2; +// string Reason = 3; +//} +func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *immysql.User, group *immysql.Group) { + var n NotificationMsg + n.SendID = applicant.UserID + n.RecvID = RecvID + n.ContentType = constant.ApplyJoinGroupTip + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var joniGroup open_im_sdk.ReceiveJoinApplicationTips + joniGroup.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(joniGroup.Group, group) + joniGroup.Applicant = &open_im_sdk.PublicUserInfo{} + utils.CopyStructFields(joniGroup.Applicant, applicant) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(joniGroup) + tips.DefaultTips = config.Config.Notification.ApplyJoinGroup.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message ApplicationProcessedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// int32 Result = 3; +// string Reason = 4; +//} +func ApplicationProcessedNotification(operationID, RecvID string, group immysql.Group, opUser immysql.GroupMember, result int32, Reason string) { + +} + +//message MemberInvitedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo InvitedUser = 3; +// uint64 OperationTime = 4; +//} +func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, invitedUser immysql.GroupMember) { + +} + +//message MemberKickedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo KickedUser = 3; +// uint64 OperationTime = 4; +//} +func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { + +} + +//message GroupInfoChangedTips{ +// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl +// GroupInfo Group = 2; +// GroupMemberFullInfo OpUser = 3; +//} +func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { + var n NotificationMsg + n.SendID = opUser.UserID + n.RecvID = group.GroupID + n.ContentType = constant.ChangeGroupInfoTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupInfoChanged open_im_sdk.GroupInfoChangedTips + groupInfoChanged.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupInfoChanged.Group, group) + groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupInfoChanged.OpUser, opUser) + groupInfoChanged.ChangedType = changedType + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupInfoChanged) + tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message MemberLeaveTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo LeaverUser = 2; +// uint64 OperationTime = 3; +//} +func MemberLeaveNotification(operationID string, group *immysql.Group, leaverUser *immysql.GroupMember) { + +} + +//message MemberEnterTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo EntrantUser = 2; +// uint64 OperationTime = 3; +//} +func MemberEnterNotification(operationID string, group *immysql.Group, entrantUser *immysql.GroupMember) { + +} + +//message MemberInfoChangedTips{ +// int32 ChangeType = 1; //1:info changed; 2:mute +// GroupMemberFullInfo OpUser = 2; //who do this +// GroupMemberFullInfo FinalInfo = 3; // +// uint64 MuteTime = 4; +// GroupInfo Group = 5; +//} +func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { + +} + +//message FriendApplicationAddedTips{ +// PublicUserInfo OpUser = 1; //user1 +// FriendApplication Application = 2; +// PublicUserInfo OpedUser = 3; //user2 +//} +func FriendApplicationAddedNotification(operationID string, opUser *immysql.User, opedUser *immysql.User, application *immysql.FriendRequest) { + +} + +//message FriendApplicationProcessedTips{ +// PublicUserInfo OpUser = 1; //user2 +// PublicUserInfo OpedUser = 2; //user1 +// int32 result = 3; //1: accept; -1: reject +//} +func FriendApplicationProcessedNotification(operationID string, opUser *immysql.User, OpedUser *immysql.User, result int32) { + +} + +//message FriendAddedTips{ +// FriendInfo Friend = 1; +//} +//message FriendInfo{ +// UserInfo OwnerUser = 1; +// string Remark = 2; +// uint64 CreateTime = 3; +// UserInfo FriendUser = 4; +//} + +func FriendAddedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message FriendDeletedTips{ +// FriendInfo Friend = 1; +//} +func FriendDeletedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message FriendInfoChangedTips{ +// FriendInfo Friend = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func FriendInfoChangedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message BlackAddedTips{ +// BlackInfo Black = 1; +//} +//message BlackInfo{ +// PublicUserInfo OwnerUser = 1; +// string Remark = 2; +// uint64 CreateTime = 3; +// PublicUserInfo BlackUser = 4; +//} +func BlackAddedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { + +} + +//message BlackDeletedTips{ +// BlackInfo Black = 1; +//} +func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { + +} + +//message SelfInfoUpdatedTips{ +// UserInfo SelfUserInfo = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func SelfInfoUpdatedNotification(operationID string, opUser *immysql.User, selfUser *immysql.User) { + +} diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index 35e6616ee..8edc72885 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -1,8 +1,7 @@ package group import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" @@ -10,7 +9,6 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" @@ -69,39 +67,40 @@ func (s *groupServer) Run() { } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.InfoByArgs("rpc create group is server,args=%s", req.String()) + log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) var ( groupId string ) //Parse token, to find current user information claims, err := token_verify.ParseToken(req.Token) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } //Time stamp + MD5 to generate group chat id groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ex) if err != nil { - log.ErrorByKv("create group chat failed", req.OperationID, "err=%s", err.Error()) + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } - isMagagerFlag := 0 + isManagerFlag := 0 tokenUid := claims.UID if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isMagagerFlag = 1 + isManagerFlag = 1 } - if isMagagerFlag == 0 { + us, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.Error("", req.OperationID, "find userInfo failed", err.Error()) + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + if isManagerFlag == 0 { //Add the group owner to the group first, otherwise the group creation will fail - us, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.Error("", req.OperationID, "find userInfo failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Name, us.Icon, constant.GroupOwner) + err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) if err != nil { log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil @@ -109,7 +108,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err = db.DB.AddGroupMember(groupId, claims.UID) if err != nil { - log.Error("", "", "create mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } } @@ -118,12 +117,12 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR for _, user := range req.MemberList { us, err := im_mysql_model.FindUserByUID(user.Uid) if err != nil { - log.Error("", req.OperationID, "find userInfo failed,uid=%s", user.Uid, err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) continue } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Name, us.Icon, user.SetRole) + err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) if err != nil { - log.ErrorByArgs("pull %s to group %s failed,err=%s", user.Uid, groupId, err.Error()) + log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) } err = db.DB.AddGroupMember(groupId, user.Uid) if err != nil { @@ -131,32 +130,21 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } } - if isMagagerFlag == 1 { + if isManagerFlag == 1 { - //type NotificationContent struct { - // IsDisplay int32 `json:"isDisplay"` - // DefaultTips string `json:"defaultTips"` - // Detail string `json:"detail"` - //} n := NotificationContent{ - // IsDisplay: 1, - // DefaultTips: "You have joined the group chat:" + createGroupResp.Data.GroupName, - // Detail: createGroupResp.Data.GroupId, - // } - - ////Push message when create group chat - n := content_struct.NotificationContent{1, req.GroupName, groupId} - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: groupId, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.SysMsgType, //Notification message identification - ContentType: constant.CreateGroupTip, //Add friend flag - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) } + group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + chat.GroupCreatedNotification(req.OperationID, us, group, memberList) + log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) - log.Info(req.Token, req.OperationID, "rpc create group success return") return &pbGroup.CreateGroupResp{GroupID: groupId}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 15740800f..e5b7cfc7d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -384,9 +384,9 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG } user, err := imdb.FindUserByUID(v) if err == nil && user != nil { - memberNode.FaceUrl = user.Icon + memberNode.FaceUrl = user.FaceUrl memberNode.JoinTime = uint64(memberInfo.JoinTime.Unix()) - memberNode.UserId = user.UID + memberNode.UserId = user.UserID memberNode.NickName = memberInfo.NickName memberNode.Role = memberInfo.AdministratorLevel } diff --git a/internal/rpc/group/group_application_response.go b/internal/rpc/group/group_application_response.go index 4282de51b..c8a077ae9 100644 --- a/internal/rpc/group/group_application_response.go +++ b/internal/rpc/group/group_application_response.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -9,12 +10,11 @@ import ( ) func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { - log.Info("", "", "rpc GroupApplicationResponse call start..., [pb: %s]", pb.String()) - + log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) reply, err := im_mysql_model.GroupApplicationResponse(pb) if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., im_mysql_model.GroupApplicationResponse fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: "rpc GroupApplicationResponse failed"}, nil + log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb) + return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil } if pb.HandleResult == 1 { @@ -32,8 +32,15 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.Grou } } } + if pb.ToUserID == "0" { + chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID) + } - log.Info("", "", "rpc GroupApplicationResponse call..., im_mysql_model.GroupApplicationResponse") + if pb.HandleResult == 1 { + + } + + log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) return reply, nil } diff --git a/internal/rpc/group/join_group.go b/internal/rpc/group/join_group.go index 0aed0d4e4..5a26181dd 100644 --- a/internal/rpc/group/join_group.go +++ b/internal/rpc/group/join_group.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -10,16 +11,16 @@ import ( ) func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc join group is server,args=%s", req.String()) + log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) //Parse token, to find current user information claims, err := token_verify.ParseToken(req.Token) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) if err != nil { - log.Error(req.Token, req.OperationID, "No this user,err=%s", err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) return &pbGroup.CommonResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } @@ -28,30 +29,23 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") } - log.Info(req.Token, req.OperationID, "args: ", req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon) - - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon); err != nil { + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) return &pbGroup.CommonResp{ErrorCode: constant.ErrJoinGroupApplication.ErrCode, ErrorMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil } - ////Find the the group owner - //groupCreatorInfo, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupCreator) - //if err != nil { - // log.Error(req.Token, req.OperationID, "find group creator failed", err.Error()) - //} else { - // //Push message when join group chat - // logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: groupCreatorInfo[0].Uid, - // Content: content_struct.NewContentStructString(0, "", req.String()), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.JoinGroupTip, - // SessionType: constant.SingleChatType, - // OperationID: req.OperationID, - // }) - //} - log.Info(req.Token, req.OperationID, "rpc join group success return") - return &pbGroup.CommonResp{}, nil + memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) + if len(memberList) == 0 { + log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil + } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil + } + chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) + + log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil } diff --git a/internal/rpc/group/set_group_info.go b/internal/rpc/group/set_group_info.go index 3e1f25854..55532a04e 100644 --- a/internal/rpc/group/set_group_info.go +++ b/internal/rpc/group/set_group_info.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -18,6 +19,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } + groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) if err != nil { log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error()) @@ -26,21 +28,33 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) + return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + } + ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + var changedType int32 + if group.GroupName != req.GroupName && req.GroupName != "" { + changedType = 1 + } + if group.Notification != req.Notification && req.Notification != "" { + changedType = changedType | (1 << 1) + } + if group.Introduction != req.Introduction && req.Introduction != "" { + changedType = changedType | (1 << 2) + } + if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { + changedType = changedType | (1 << 3) + } //only administrators can set group information if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil } - ////Push message when set group info - //jsonInfo, _ := json.Marshal(req) - //logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: req.GroupID, - // Content: string(jsonInfo), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.SetGroupInfoTip, - // SessionType: constant.GroupChatType, - // OperationID: req.OperationID, - //}) + + if changedType != 0 { + chat.GroupInfoChangedNotification(req.OperationID, claims.UID, changedType, group, groupUserInfo) + } + return &pbGroup.CommonResp{}, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2385cffc4..8e4f198e8 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -1,6 +1,7 @@ package config import ( + "fmt" "io/ioutil" "os" "path/filepath" @@ -158,6 +159,59 @@ type config struct { CallbackUrl string `yaml:"callbackUrl"` CallBackTimeOut int `yaml:"callbackTimeOut"` } + IOSPush struct { + PushSound string `yaml:"pushSound"` + BadgeCount bool `yaml:"badgeCount"` + } + Notification struct { + GroupCreated struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + + GroupInfoChanged struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + + ApplyJoinGroup struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + } Demo struct { Port []int `yaml:"openImDemoPort"` AliSMSVerify struct { @@ -200,5 +254,5 @@ func init() { if err = yaml.Unmarshal(bytes, &Config); err != nil { panic(err.Error()) } - + fmt.Println("load config: ", Config) } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index c00b98c7d..9cabc19b3 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -54,13 +54,14 @@ const ( TransferGroupOwnerTip = 501 CreateGroupTip = 502 GroupApplicationResponseTip = 503 - JoinGroupTip = 504 + ApplyJoinGroupTip = 504 QuitGroupTip = 505 SetGroupInfoTip = 506 AcceptGroupApplicationTip = 507 RefuseGroupApplicationTip = 508 KickGroupMemberTip = 509 InviteUserToGroupTip = 510 + ChangeGroupInfoTip = 511 //MsgFrom UserMsgType = 100 diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index ce029a0bb..8eefd1c63 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -12,10 +12,10 @@ func InsertToFriend(ownerId, friendId string, flag int32) error { return err } toInsertFollow := Friend{ - OwnerId: ownerId, - FriendId: friendId, - FriendFlag: flag, - CreateTime: time.Now(), + OwnerUserID: ownerId, + FriendUserID: friendId, + FriendFlag: flag, + CreateTime: time.Now(), } err = dbConn.Table("friend").Create(toInsertFollow).Error if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index a31f973e1..46381dd45 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -10,7 +10,7 @@ func InsertIntoGroupMember(groupId, uid, nickName, userGroupFaceUrl string, admi if err != nil { return err } - toInsertInfo := GroupMember{GroupId: groupId, Uid: uid, NickName: nickName, AdministratorLevel: administratorLevel, JoinTime: time.Now(), UserGroupFaceUrl: userGroupFaceUrl} + toInsertInfo := GroupMember{GroupID: groupId, UserID: uid, NickName: nickName, AdministratorLevel: administratorLevel, JoinTime: time.Now(), FaceUrl: userGroupFaceUrl} err = dbConn.Table("group_member").Create(toInsertInfo).Error if err != nil { return err @@ -206,7 +206,7 @@ func GetGroupOwnerByGroupId(groupId string) string { } for _, v := range omList { if v.AdministratorLevel == 1 { - return v.Uid + return v.UserID } } return "" diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 2988741e5..798f9bf1d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -17,7 +17,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri if name == "" { name = "groupChat" } - toInsertInfo := Group{GroupId: groupId, Name: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} + toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} err = dbConn.Table("group").Create(toInsertInfo).Error if err != nil { return err @@ -174,7 +174,7 @@ func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOw return nil, err } - if oldOwner.Uid == newOwner.Uid { + if oldOwner.UserID == newOwner.UserID { return nil, errors.New("the self") } @@ -248,55 +248,5 @@ func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.Gro } } - //if err != nil { - // err = dbConn.Raw("select * from `group_request` where handled_user = ? and group_id = ? and to_user_id = ? and from_user_id = ?", "", pb.GroupID, "0", pb.UID).Scan(&groupRequest).Error - // if err != nil { - // return nil, err - // } - // if pb.Flag == 1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ? and from_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, "0", pb.UID).Error - // if err != nil { - // return nil, err - // } - // - // // add to group member - // err = InsertIntoGroupMember(pb.GroupID, pb.UID, groupRequest.FromUserNickname, groupRequest.FromUserFaceUrl, 0) - // if err != nil { - // return nil, err - // } - // } else if pb.Flag == -1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ? and from_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, "0", pb.UID).Error - // if err != nil { - // return nil, err - // } - // } else { - // return nil, errors.New("flag error") - // } - //} else { - // if pb.Flag == 1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, pb.UID).Error - // if err != nil { - // return nil, err - // } - // - // // add to group member - // err = InsertIntoGroupMember(pb.GroupID, pb.UID, groupRequest.ToUserNickname, groupRequest.ToUserFaceUrl, 0) - // if err != nil { - // return nil, err - // } - // } else if pb.Flag == -1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, pb.UID).Error - // if err != nil { - // return nil, err - // } - // } else { - // return nil, errors.New("flag error") - // } - //} - return &group.GroupApplicationResponseResp{}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index d8576ac19..198362ca2 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -3,9 +3,9 @@ package im_mysql_model import "time" type User struct { - UID string `gorm:"column:uid;primaryKey;"` - Name string `gorm:"column:name"` - Icon string `gorm:"column:icon"` + UserID string `gorm:"column:uid;primaryKey;"` + Nickname string `gorm:"column:name"` + FaceUrl string `gorm:"column:icon"` Gender int32 `gorm:"column:gender"` Mobile string `gorm:"column:mobile"` Birth string `gorm:"column:birth"` @@ -15,28 +15,28 @@ type User struct { } type Friend struct { - OwnerId string `gorm:"column:owner_id"` - FriendId string `gorm:"column:friend_id"` - Comment string `gorm:"column:comment"` - FriendFlag int32 `gorm:"column:friend_flag"` - CreateTime time.Time `gorm:"column:create_time"` + OwnerUserID string `gorm:"column:owner_id"` + FriendUserID string `gorm:"column:friend_id"` + Remark string `gorm:"column:comment"` + FriendFlag int32 `gorm:"column:friend_flag"` + CreateTime time.Time `gorm:"column:create_time"` } type FriendRequest struct { - ReqId string `gorm:"column:req_id"` - Uid string `gorm:"column:user_id"` + ReqID string `gorm:"column:req_id"` + UserID string `gorm:"column:user_id"` Flag int32 `gorm:"column:flag"` ReqMessage string `gorm:"column:req_message"` CreateTime time.Time `gorm:"column:create_time"` } type BlackList struct { - OwnerId string `gorm:"column:owner_id"` - BlockId string `gorm:"column:block_id"` - CreateTime time.Time `gorm:"column:create_time"` + OwnerUserID string `gorm:"column:owner_id"` + BlockUserID string `gorm:"column:block_id"` + CreateTime time.Time `gorm:"column:create_time"` } type Group struct { - GroupId string `gorm:"column:group_id"` - Name string `gorm:"column:name"` + GroupID string `gorm:"column:group_id"` + GroupName string `gorm:"column:name"` Introduction string `gorm:"column:introduction"` Notification string `gorm:"column:notification"` FaceUrl string `gorm:"column:face_url"` @@ -45,12 +45,12 @@ type Group struct { } type GroupMember struct { - GroupId string `gorm:"column:group_id"` - Uid string `gorm:"column:uid"` + GroupID string `gorm:"column:group_id"` + UserID string `gorm:"column:uid"` NickName string `gorm:"column:nickname"` AdministratorLevel int32 `gorm:"column:administrator_level"` JoinTime time.Time `gorm:"column:join_time"` - UserGroupFaceUrl string `gorm:"user_group_face_url"` + FaceUrl string `gorm:"user_group_face_url"` } type GroupRequest struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 907b0f223..39ad51a13 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -10,7 +10,7 @@ func InsertInToUserBlackList(ownerID, blockID string) error { if err != nil { return err } - toInsertInfo := BlackList{OwnerId: ownerID, BlockId: blockID, CreateTime: time.Now()} + toInsertInfo := BlackList{OwnerUserID: ownerID, BlockUserID: blockID, CreateTime: time.Now()} err = dbConn.Table("user_black_list").Create(toInsertInfo).Error return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index be4e60069..98ddcb7fc 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -30,9 +30,9 @@ func UserRegister(pb *pbAuth.UserRegisterReq) error { return err } addUser := User{ - UID: pb.UID, - Name: pb.Name, - Icon: pb.Icon, + UserID: pb.UID, + Nickname: pb.Name, + FaceUrl: pb.Icon, Gender: pb.Gender, Mobile: pb.Mobile, Birth: pb.Birth, diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go index 3973f71ef..48d5f6c4d 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go @@ -17,20 +17,3 @@ type Receive struct { MsgId string CreateTime *time.Time } - -//func InsertMessageToReceive(seq int64, userid, msgid string) error { -// conn := db.NewDbConnection() -// receive := Receive{ -// UID: userid, -// Seq: seq, -// MsgId: msgid, -// } -// err := conn.Table("receive").Create(&receive).Error -// return err -//} -//func GetBiggestSeqFromReceive(userid string) (seq int64, err error) { -// //得到数据库的连接(并非真连接,调用时才连接,由gorm自动维护数据库连接池) -// conn := db.NewDbConnection() -// err = conn.Raw("select max(seq) from receive where user_id = ?", userid).Row().Scan(&seq) -// return seq, err -//} diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index dfe51b472..d208317a5 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -1,16 +1,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: chat/chat.proto +// source: chat.proto -package pbChat // import "./chat" +package pbChat import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" - -import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" -) +import sdk_ws "Open_IM/pkg/proto/sdk_ws" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -50,7 +46,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{0} + return fileDescriptor_chat_955d1f0dcca586dd, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -215,7 +211,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{1} + return fileDescriptor_chat_955d1f0dcca586dd, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -361,7 +357,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{2} + return fileDescriptor_chat_955d1f0dcca586dd, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +421,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{3} + return fileDescriptor_chat_955d1f0dcca586dd, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -500,7 +496,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{4} + return fileDescriptor_chat_955d1f0dcca586dd, []int{4} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -553,7 +549,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{5} + return fileDescriptor_chat_955d1f0dcca586dd, []int{5} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -601,7 +597,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{6} + return fileDescriptor_chat_955d1f0dcca586dd, []int{6} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -651,9 +647,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -663,7 +659,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{7} + return fileDescriptor_chat_955d1f0dcca586dd, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -699,29 +695,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -731,7 +727,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{8} + return fileDescriptor_chat_955d1f0dcca586dd, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -835,181 +831,61 @@ func (m *MsgFormat) GetClientMsgID() string { return "" } -type UserSendMsgReq struct { - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type SendMsgReq struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,3,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } -func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgReq) ProtoMessage() {} -func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{9} +func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } +func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } +func (*SendMsgReq) ProtoMessage() {} +func (*SendMsgReq) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_955d1f0dcca586dd, []int{9} } -func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) +func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) } -func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) +func (m *SendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsgReq.Marshal(b, m, deterministic) } -func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgReq.Merge(dst, src) +func (dst *SendMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsgReq.Merge(dst, src) } -func (m *UserSendMsgReq) XXX_Size() int { - return xxx_messageInfo_UserSendMsgReq.Size(m) +func (m *SendMsgReq) XXX_Size() int { + return xxx_messageInfo_SendMsgReq.Size(m) } -func (m *UserSendMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) +func (m *SendMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsgReq.DiscardUnknown(m) } -var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo +var xxx_messageInfo_SendMsgReq proto.InternalMessageInfo -func (m *UserSendMsgReq) GetReqIdentifier() int32 { - if m != nil { - return m.ReqIdentifier - } - return 0 -} - -func (m *UserSendMsgReq) GetToken() string { +func (m *SendMsgReq) GetToken() string { if m != nil { return m.Token } return "" } -func (m *UserSendMsgReq) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *UserSendMsgReq) GetOperationID() string { +func (m *SendMsgReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -func (m *UserSendMsgReq) GetSenderNickName() string { +func (m *SendMsgReq) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *UserSendMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *UserSendMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *UserSendMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *UserSendMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *UserSendMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *UserSendMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *UserSendMsgReq) GetForceList() []string { - if m != nil { - return m.ForceList + return m.MsgData } return nil } -func (m *UserSendMsgReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *UserSendMsgReq) GetOptions() string { - if m != nil { - return m.Options - } - return "" -} - -func (m *UserSendMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - -func (m *UserSendMsgReq) GetOffLineInfo() string { - if m != nil { - return m.OffLineInfo - } - return "" -} - -func (m *UserSendMsgReq) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - -func (m *UserSendMsgReq) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -type UserSendMsgResp struct { +type SendMsgResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` @@ -1021,66 +897,66 @@ type UserSendMsgResp struct { XXX_sizecache int32 `json:"-"` } -func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } -func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgResp) ProtoMessage() {} -func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{10} +func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } +func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } +func (*SendMsgResp) ProtoMessage() {} +func (*SendMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_955d1f0dcca586dd, []int{10} } -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) +func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) } -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) +func (m *SendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsgResp.Marshal(b, m, deterministic) } -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +func (dst *SendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsgResp.Merge(dst, src) } -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) +func (m *SendMsgResp) XXX_Size() int { + return xxx_messageInfo_SendMsgResp.Size(m) } -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +func (m *SendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsgResp.DiscardUnknown(m) } -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo +var xxx_messageInfo_SendMsgResp proto.InternalMessageInfo -func (m *UserSendMsgResp) GetErrCode() int32 { +func (m *SendMsgResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *UserSendMsgResp) GetErrMsg() string { +func (m *SendMsgResp) GetErrMsg() string { if m != nil { return m.ErrMsg } return "" } -func (m *UserSendMsgResp) GetReqIdentifier() int32 { +func (m *SendMsgResp) GetReqIdentifier() int32 { if m != nil { return m.ReqIdentifier } return 0 } -func (m *UserSendMsgResp) GetServerMsgID() string { +func (m *SendMsgResp) GetServerMsgID() string { if m != nil { return m.ServerMsgID } return "" } -func (m *UserSendMsgResp) GetClientMsgID() string { +func (m *SendMsgResp) GetClientMsgID() string { if m != nil { return m.ClientMsgID } return "" } -func (m *UserSendMsgResp) GetSendTime() int64 { +func (m *SendMsgResp) GetSendTime() int64 { if m != nil { return m.SendTime } @@ -1097,245 +973,70 @@ func init() { proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "pbChat.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") - proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") + proto.RegisterType((*SendMsgReq)(nil), "pbChat.SendMsgReq") + proto.RegisterType((*SendMsgResp)(nil), "pbChat.SendMsgResp") } -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn +func init() { proto.RegisterFile("chat.proto", fileDescriptor_chat_955d1f0dcca586dd) } -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for Chat service - -type ChatClient interface { - GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) - PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) - PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) - UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) -} - -type chatClient struct { - cc *grpc.ClientConn -} - -func NewChatClient(cc *grpc.ClientConn) ChatClient { - return &chatClient{cc} -} - -func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) { - out := new(GetMaxAndMinSeqResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/GetMaxAndMinSeq", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) { - out := new(UserSendMsgResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for Chat service - -type ChatServer interface { - GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) - PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) - PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) - UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) -} - -func RegisterChatServer(s *grpc.Server, srv ChatServer) { - s.RegisterService(&_Chat_serviceDesc, srv) -} - -func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetMaxAndMinSeqReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).GetMaxAndMinSeq(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/GetMaxAndMinSeq", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).GetMaxAndMinSeq(ctx, req.(*GetMaxAndMinSeqReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageBySeqListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessageBySeqList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessageBySeqList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserSendMsgReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).UserSendMsg(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/UserSendMsg", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).UserSendMsg(ctx, req.(*UserSendMsgReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Chat_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pbChat.Chat", - HandlerType: (*ChatServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetMaxAndMinSeq", - Handler: _Chat_GetMaxAndMinSeq_Handler, - }, - { - MethodName: "PullMessage", - Handler: _Chat_PullMessage_Handler, - }, - { - MethodName: "PullMessageBySeqList", - Handler: _Chat_PullMessageBySeqList_Handler, - }, - { - MethodName: "UserSendMsg", - Handler: _Chat_UserSendMsg_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "chat/chat.proto", -} - -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_163a8d226aa6edb5) } - -var fileDescriptor_chat_163a8d226aa6edb5 = []byte{ - // 981 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, - 0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, - 0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, - 0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, - 0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, - 0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, - 0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, - 0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, - 0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, - 0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, - 0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, - 0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, - 0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, - 0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, - 0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, - 0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, - 0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, - 0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, - 0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, - 0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, - 0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, - 0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, - 0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, - 0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, - 0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, - 0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, - 0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, - 0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, - 0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, - 0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, - 0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, - 0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, - 0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, - 0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, - 0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, - 0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, - 0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, - 0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, - 0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, - 0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, - 0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, - 0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, - 0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, - 0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, - 0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, - 0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, - 0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, - 0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, - 0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, - 0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, - 0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, - 0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, - 0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, - 0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, - 0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, - 0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, - 0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, - 0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, - 0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, - 0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, - 0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, - 0x52, 0xce, 0x0c, 0x00, 0x00, +var fileDescriptor_chat_955d1f0dcca586dd = []byte{ + // 927 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcb, 0x6e, 0xe3, 0x36, + 0x14, 0x85, 0x2d, 0x3f, 0xe2, 0x6b, 0xe7, 0xc5, 0x09, 0x32, 0x84, 0x5b, 0xb4, 0xae, 0x30, 0x2d, + 0x8c, 0x2e, 0x12, 0x20, 0xdd, 0x14, 0x5d, 0x14, 0xe8, 0xc4, 0x49, 0xa0, 0x62, 0x94, 0x04, 0xb2, + 0x07, 0x5d, 0x06, 0x1a, 0x9b, 0x56, 0x04, 0xdb, 0xa2, 0x4c, 0x32, 0xc9, 0xcc, 0xa6, 0xbf, 0xd0, + 0x6d, 0x7f, 0xa8, 0x1f, 0xd3, 0x5f, 0x28, 0x50, 0xa0, 0xb8, 0xa4, 0x14, 0xeb, 0x11, 0x27, 0xc1, + 0x14, 0x33, 0xcb, 0x73, 0x78, 0x79, 0x49, 0xdd, 0x73, 0x78, 0x6c, 0x80, 0xf1, 0xb5, 0xaf, 0x0e, + 0x62, 0xc1, 0x15, 0x27, 0x8d, 0xf8, 0xdd, 0xf1, 0xb5, 0xaf, 0xba, 0xdf, 0x5c, 0xc4, 0x2c, 0xba, + 0x72, 0xdc, 0xc3, 0x78, 0x16, 0x1c, 0xea, 0xa5, 0x43, 0x39, 0x99, 0x5d, 0xdd, 0xc9, 0xc3, 0x3b, + 0x69, 0x4a, 0xed, 0x3f, 0x6a, 0xb0, 0xfb, 0xdb, 0x70, 0xc4, 0x5d, 0x19, 0x0c, 0x6f, 0x05, 0xee, + 0x72, 0x65, 0x40, 0xf6, 0xa1, 0x31, 0x64, 0xd1, 0xc4, 0x19, 0xd0, 0x4a, 0xaf, 0xd2, 0x6f, 0x79, + 0x09, 0x42, 0xde, 0x63, 0xe3, 0x5b, 0x67, 0x40, 0xab, 0x86, 0x37, 0x88, 0x50, 0x68, 0x1e, 0xf3, + 0x48, 0xb1, 0x48, 0x51, 0x4b, 0x2f, 0xa4, 0x90, 0x74, 0x61, 0x03, 0xf7, 0x8e, 0xc2, 0x05, 0xa3, + 0xb5, 0x5e, 0xa5, 0x6f, 0x79, 0xf7, 0x18, 0x77, 0xb9, 0x32, 0x38, 0x15, 0x7c, 0x41, 0xeb, 0xbd, + 0x4a, 0xbf, 0xee, 0xa5, 0x90, 0x7c, 0x07, 0x5b, 0x58, 0xc5, 0xc4, 0x79, 0x38, 0x9e, 0x9d, 0xfb, + 0x0b, 0x46, 0x1b, 0xba, 0x6d, 0x81, 0x25, 0xaf, 0x60, 0xd3, 0x30, 0xa7, 0xfe, 0x98, 0xbd, 0xf5, + 0xde, 0xd0, 0xa6, 0x2e, 0xcb, 0x93, 0xa4, 0x07, 0xed, 0xe4, 0x3a, 0xa3, 0x0f, 0x31, 0xa3, 0x1b, + 0xfa, 0xac, 0x2c, 0x85, 0x15, 0x43, 0x26, 0x65, 0xc8, 0x23, 0x5d, 0xd1, 0x32, 0x15, 0x19, 0x0a, + 0x2b, 0x2e, 0x62, 0x26, 0x7c, 0x15, 0xf2, 0xc8, 0x19, 0x50, 0xd0, 0xe7, 0x64, 0x29, 0xb2, 0x07, + 0x75, 0x57, 0x06, 0xce, 0x80, 0xb6, 0xf5, 0x9a, 0x01, 0xc8, 0x8e, 0xf8, 0x8c, 0x45, 0xb4, 0x63, + 0x58, 0x0d, 0x74, 0xb7, 0xe9, 0x74, 0x1e, 0x46, 0xcc, 0x89, 0xa6, 0x9c, 0x6e, 0x26, 0xdd, 0x56, + 0x14, 0xce, 0xe6, 0x22, 0xc6, 0xce, 0x92, 0x6e, 0x99, 0x89, 0x26, 0x90, 0x7c, 0x05, 0x70, 0x39, + 0xf7, 0xd5, 0x94, 0x8b, 0x85, 0x33, 0xa0, 0xdb, 0xfa, 0xaa, 0x19, 0x86, 0x7c, 0x09, 0xad, 0x53, + 0x2e, 0xc6, 0xec, 0x4d, 0x28, 0x15, 0xdd, 0xe9, 0x59, 0xfd, 0x96, 0xb7, 0x22, 0xf4, 0x2c, 0xe6, + 0x21, 0x8b, 0x94, 0xb9, 0xeb, 0xae, 0x39, 0x39, 0x43, 0xd9, 0xff, 0x58, 0xb0, 0x6f, 0xdc, 0x30, + 0xe2, 0x97, 0x37, 0xf2, 0xfa, 0x93, 0xd8, 0x82, 0x42, 0x13, 0x6b, 0x86, 0x6c, 0x99, 0xb8, 0x22, + 0x85, 0x39, 0xc3, 0xd4, 0xd7, 0x1b, 0xa6, 0xf1, 0x94, 0x61, 0x9a, 0xcf, 0x33, 0xcc, 0xc6, 0x33, + 0x0c, 0xd3, 0x7a, 0xd2, 0x30, 0xf0, 0xa4, 0x61, 0xda, 0x8f, 0x18, 0xa6, 0x93, 0x35, 0xcc, 0xa7, + 0xb4, 0x46, 0x41, 0xfc, 0x9d, 0xb2, 0xf8, 0xbf, 0xc3, 0xd6, 0xe5, 0xcd, 0x7c, 0xee, 0x32, 0x29, + 0xfd, 0x80, 0x79, 0x6c, 0x89, 0xda, 0xbe, 0x95, 0x4c, 0xac, 0x34, 0x37, 0xc8, 0xe8, 0xb4, 0x7c, + 0xcd, 0x82, 0x30, 0xd2, 0xaa, 0x6b, 0x9d, 0x0c, 0x36, 0x3e, 0x59, 0x9e, 0x44, 0x13, 0x2d, 0xbb, + 0xe5, 0x25, 0xa8, 0x38, 0x93, 0x5a, 0x69, 0x26, 0xf6, 0xdf, 0x15, 0xd8, 0xce, 0x5d, 0x40, 0xc6, + 0xf8, 0xbd, 0x27, 0x42, 0x1c, 0xf3, 0x09, 0xd3, 0x57, 0xa8, 0x7b, 0x29, 0xc4, 0x73, 0x4e, 0x84, + 0x70, 0x65, 0x90, 0xfa, 0xce, 0x20, 0xe4, 0x5d, 0xff, 0x3d, 0x9a, 0x2b, 0x39, 0xdf, 0x20, 0xcd, + 0x87, 0xd1, 0xca, 0x74, 0x09, 0x22, 0x3f, 0xc1, 0xe6, 0x30, 0x8c, 0x82, 0x39, 0xc3, 0x6f, 0xc3, + 0x76, 0xf5, 0x9e, 0xd5, 0x6f, 0x1f, 0xed, 0x1d, 0x98, 0x1c, 0x3d, 0x38, 0xf3, 0xd5, 0x35, 0x13, + 0xa7, 0x5c, 0x2c, 0x7c, 0xe5, 0xe5, 0x4b, 0xc9, 0x8f, 0xd0, 0x39, 0x13, 0xfc, 0x26, 0x4e, 0xb7, + 0x36, 0x1e, 0xd9, 0x9a, 0xab, 0xb4, 0x17, 0xf0, 0x32, 0xf3, 0xa9, 0xaf, 0x3f, 0x0c, 0xd9, 0x12, + 0x9f, 0xe8, 0x63, 0x43, 0x2f, 0x0c, 0xb0, 0x5a, 0x36, 0x15, 0x85, 0xa6, 0x34, 0x7d, 0xa8, 0xd5, + 0xb3, 0xf0, 0x61, 0x25, 0xd0, 0x3e, 0x07, 0x72, 0xc6, 0x94, 0xeb, 0xbf, 0xff, 0x25, 0x9a, 0x98, + 0xef, 0xfe, 0x5f, 0x27, 0xd9, 0x77, 0xf0, 0xa2, 0xd4, 0xef, 0x73, 0xa8, 0x65, 0x9f, 0x40, 0x27, + 0x3b, 0x55, 0xb2, 0x05, 0xd5, 0xfb, 0xeb, 0x57, 0x9d, 0x01, 0xf9, 0x16, 0x6a, 0xfa, 0xfb, 0xab, + 0x5a, 0x89, 0xdd, 0x54, 0x09, 0x8c, 0x0a, 0x23, 0x83, 0x5e, 0xb6, 0xff, 0xad, 0x42, 0xeb, 0x9e, + 0xfb, 0x98, 0x68, 0x4b, 0xa3, 0xc8, 0xca, 0x47, 0x51, 0x21, 0x3c, 0x6a, 0x6b, 0xc2, 0x43, 0xdc, + 0x6a, 0x17, 0x38, 0x03, 0x9d, 0x72, 0x2d, 0x2f, 0x4b, 0x65, 0x83, 0xb3, 0x91, 0x0f, 0xce, 0x1d, + 0xb0, 0x70, 0x22, 0x4d, 0x3d, 0x11, 0xab, 0x18, 0x98, 0x1b, 0x85, 0xc0, 0xfc, 0x1e, 0x76, 0x4c, + 0xb2, 0x65, 0x62, 0xc1, 0xa4, 0x59, 0x89, 0x7f, 0x20, 0x42, 0xe1, 0x79, 0x11, 0xda, 0x5e, 0x17, + 0xa1, 0x99, 0xa8, 0xe9, 0x94, 0xa3, 0x46, 0x01, 0xe0, 0x16, 0x57, 0x06, 0xe8, 0xc3, 0x3d, 0xa8, + 0x2b, 0xfd, 0x3b, 0x69, 0xc6, 0x6f, 0x00, 0x76, 0xe1, 0x65, 0x17, 0x66, 0x28, 0x72, 0x00, 0xcd, + 0x85, 0x0c, 0x06, 0xbe, 0xf2, 0xb5, 0x0e, 0xf8, 0xf2, 0x38, 0xfe, 0xe9, 0x09, 0x17, 0x57, 0x72, + 0x32, 0x43, 0xd1, 0x71, 0xcd, 0x4b, 0x8b, 0xec, 0xbf, 0x2a, 0x38, 0xfc, 0xe4, 0xd8, 0x8f, 0xb2, + 0xeb, 0x2b, 0xd8, 0xf4, 0xd8, 0xd2, 0x99, 0xb0, 0x48, 0x85, 0xd3, 0x90, 0x89, 0x44, 0xff, 0x3c, + 0x59, 0xd4, 0xb8, 0x56, 0xd6, 0xb8, 0x30, 0xa1, 0x7a, 0x69, 0x42, 0xa8, 0xac, 0x4c, 0x95, 0x6d, + 0x18, 0x65, 0x53, 0x7c, 0xf4, 0x67, 0x15, 0x6a, 0x68, 0x6b, 0xf2, 0x2b, 0x6c, 0x17, 0x9e, 0x21, + 0xe9, 0xde, 0x87, 0x4f, 0xe9, 0xbd, 0x77, 0xbf, 0x58, 0xbb, 0x26, 0x63, 0xf2, 0x33, 0xb4, 0x33, + 0x89, 0x44, 0xf6, 0xd3, 0xda, 0xfc, 0x4f, 0x42, 0xf7, 0xe5, 0x83, 0xbc, 0x8c, 0xc9, 0x25, 0xec, + 0x3d, 0x94, 0x68, 0xe4, 0xeb, 0x07, 0x36, 0x64, 0xf3, 0x6e, 0x7d, 0xc7, 0x23, 0x68, 0x26, 0x6a, + 0x11, 0x92, 0xd6, 0xac, 0x5c, 0xd3, 0x7d, 0x51, 0xe2, 0x64, 0xfc, 0xae, 0xa1, 0xff, 0xd9, 0xfe, + 0xf0, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x2f, 0xc4, 0xa9, 0x12, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 3c66c99dc..0f5638bd9 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -1,6 +1,7 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package pbChat;//The package name to which the proto file belongs -option go_package = "./chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +//option go_package = ".;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat message WSToMsgSvrChatMsg{ string SendID = 1; @@ -106,31 +107,16 @@ message MsgFormat{ string ClientMsgID = 12; } -message UserSendMsgReq { +message SendMsgReq { - int32 ReqIdentifier = 1; - string Token = 2; - string SendID = 3; - string OperationID = 4; - string SenderNickName = 5; - string SenderFaceURL = 6; - int32 PlatformID = 7; - int32 SessionType = 8; - int32 MsgFrom = 9; - int32 ContentType = 10; - string RecvID = 11; - repeated string ForceList = 12; - string Content = 13; - string Options = 14; - string ClientMsgID = 15; - string OffLineInfo = 16; - string Ex = 17; - int64 sendTime = 18; +string token =1; +string operationID = 2; +open_im_sdk.MsgData msgData = 3; } -message UserSendMsgResp { +message SendMsgResp { int32 ErrCode = 1; string ErrMsg = 2; int32 ReqIdentifier = 3; @@ -143,5 +129,5 @@ service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); rpc PullMessage(PullMessageReq) returns(PullMessageResp); rpc PullMessageBySeqList(PullMessageBySeqListReq) returns(PullMessageResp); - rpc UserSendMsg(UserSendMsgReq) returns(UserSendMsgResp); + rpc SendMsg(SendMsgReq) returns(SendMsgResp); } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index ff1821ec2..f767c5220 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -15,8 +15,10 @@ message CreateGroupReq{ string faceUrl = 5; string token = 6; string operationID = 7; - string ex = 8; + string CreatorUserID = 8; } + + message GroupAddMemberInfo{ string uid = 1; int32 setRole = 2; @@ -31,6 +33,7 @@ message GetGroupsInfoReq{ repeated string groupIDList = 1; string token = 2; string operationID = 3; + string UserID = 4; } message GetGroupsInfoResp{ int32 ErrorCode = 1; @@ -105,12 +108,12 @@ message JoinGroupReq{ message GroupApplicationResponseReq{ string OperationID = 1; - string OwnerID = 2; + string UserID = 2; string GroupID = 3; - string FromUserID = 4; + string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 string FromUserNickName = 5; string FromUserFaceUrl = 6; - string ToUserID = 7; + string ToUserID = 7; //请求加群:0,邀请加群:被邀请人 string ToUserNickName = 8; string ToUserFaceUrl = 9; int64 AddTime = 10; diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index a3464e077..704c323ce 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -20,8 +20,7 @@ message MsgToUserReq { } message MsgToUserResp{ repeated SingleMsgToUser resp = 1; -} -//message SendMsgByWSReq{ +}//message SendMsgByWSReq{ // string SendID = 1; // string RecvID = 2; // string Content = 3; @@ -32,6 +31,7 @@ repeated SingleMsgToUser resp = 1; // string OperationID = 8; // int64 PlatformID = 9; //} + message SingleMsgToUser{ int64 ResultCode = 1; string RecvID = 2; diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 7e1115f94..5a4ae90c5 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: sdk_ws/ws.proto +// source: ws.proto -package open_im_sdk // import "./sdk_ws" +package open_im_sdk import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -32,7 +32,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{0} + return fileDescriptor_ws_e1a0eca386827677, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{1} + return fileDescriptor_ws_e1a0eca386827677, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{2} + return fileDescriptor_ws_e1a0eca386827677, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{3} + return fileDescriptor_ws_e1a0eca386827677, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -196,9 +196,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{4} + return fileDescriptor_ws_e1a0eca386827677, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -244,29 +244,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{5} + return fileDescriptor_ws_e1a0eca386827677, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{6} + return fileDescriptor_ws_e1a0eca386827677, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{7} + return fileDescriptor_ws_e1a0eca386827677, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -559,7 +559,7 @@ type MsgData struct { MsgFrom int32 `protobuf:"varint,4,opt,name=msgFrom" json:"msgFrom,omitempty"` ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"` ServerMsgID string `protobuf:"bytes,6,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - Content string `protobuf:"bytes,7,opt,name=content" json:"content,omitempty"` + Content []byte `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` SendTime int64 `protobuf:"varint,8,opt,name=sendTime" json:"sendTime,omitempty"` Seq int64 `protobuf:"varint,9,opt,name=seq" json:"seq,omitempty"` SenderPlatformID int32 `protobuf:"varint,10,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` @@ -575,7 +575,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{8} + return fileDescriptor_ws_e1a0eca386827677, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -637,11 +637,11 @@ func (m *MsgData) GetServerMsgID() string { return "" } -func (m *MsgData) GetContent() string { +func (m *MsgData) GetContent() []byte { if m != nil { return m.Content } - return "" + return nil } func (m *MsgData) GetSendTime() int64 { @@ -690,6 +690,8 @@ type OfflinePushInfo struct { Title string `protobuf:"bytes,1,opt,name=Title" json:"Title,omitempty"` Desc string `protobuf:"bytes,2,opt,name=Desc" json:"Desc,omitempty"` Ext string `protobuf:"bytes,3,opt,name=Ext" json:"Ext,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -699,7 +701,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{9} + return fileDescriptor_ws_e1a0eca386827677, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -740,109 +742,204 @@ func (m *OfflinePushInfo) GetExt() string { return "" } -type GroupInfoTip struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` - OwnerID string `protobuf:"bytes,7,opt,name=OwnerID" json:"OwnerID,omitempty"` - CreateTime uint64 `protobuf:"varint,8,opt,name=CreateTime" json:"CreateTime,omitempty"` - MemberCount uint32 `protobuf:"varint,9,opt,name=MemberCount" json:"MemberCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *OfflinePushInfo) GetIOSPushSound() string { + if m != nil { + return m.IOSPushSound + } + return "" } -func (m *GroupInfoTip) Reset() { *m = GroupInfoTip{} } -func (m *GroupInfoTip) String() string { return proto.CompactTextString(m) } -func (*GroupInfoTip) ProtoMessage() {} -func (*GroupInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{10} -} -func (m *GroupInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoTip.Unmarshal(m, b) -} -func (m *GroupInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoTip.Marshal(b, m, deterministic) -} -func (dst *GroupInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoTip.Merge(dst, src) -} -func (m *GroupInfoTip) XXX_Size() int { - return xxx_messageInfo_GroupInfoTip.Size(m) -} -func (m *GroupInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoTip.DiscardUnknown(m) +func (m *OfflinePushInfo) GetIOSBadgeCount() bool { + if m != nil { + return m.IOSBadgeCount + } + return false } -var xxx_messageInfo_GroupInfoTip proto.InternalMessageInfo +// public +type GroupInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Owner *PublicUserInfo `protobuf:"bytes,6,opt,name=Owner" json:"Owner,omitempty"` + CreateTime uint64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} -func (m *GroupInfoTip) GetGroupID() string { +func (m *GroupInfo) Reset() { *m = GroupInfo{} } +func (m *GroupInfo) String() string { return proto.CompactTextString(m) } +func (*GroupInfo) ProtoMessage() {} +func (*GroupInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{10} +} +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) +} +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) +} +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) +} +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) +} +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo + +func (m *GroupInfo) GetGroupID() string { if m != nil { return m.GroupID } return "" } -func (m *GroupInfoTip) GetGroupName() string { +func (m *GroupInfo) GetGroupName() string { if m != nil { return m.GroupName } return "" } -func (m *GroupInfoTip) GetNotification() string { +func (m *GroupInfo) GetNotification() string { if m != nil { return m.Notification } return "" } -func (m *GroupInfoTip) GetIntroduction() string { +func (m *GroupInfo) GetIntroduction() string { if m != nil { return m.Introduction } return "" } -func (m *GroupInfoTip) GetFaceUrl() string { +func (m *GroupInfo) GetFaceUrl() string { if m != nil { return m.FaceUrl } return "" } -func (m *GroupInfoTip) GetEx() string { +func (m *GroupInfo) GetOwner() *PublicUserInfo { if m != nil { - return m.Ex + return m.Owner } - return "" + return nil } -func (m *GroupInfoTip) GetOwnerID() string { - if m != nil { - return m.OwnerID - } - return "" -} - -func (m *GroupInfoTip) GetCreateTime() uint64 { +func (m *GroupInfo) GetCreateTime() uint64 { if m != nil { return m.CreateTime } return 0 } -func (m *GroupInfoTip) GetMemberCount() uint32 { +func (m *GroupInfo) GetMemberCount() uint32 { if m != nil { return m.MemberCount } return 0 } -type UserInfoTip struct { +// private, Group members have permission to view +type GroupMemberFullInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` + AdministratorLevel int32 `protobuf:"varint,3,opt,name=AdministratorLevel" json:"AdministratorLevel,omitempty"` + JoinTime uint64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` + FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } +func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberFullInfo) ProtoMessage() {} +func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{11} +} +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) +} +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) +} +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) +} +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo + +func (m *GroupMemberFullInfo) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *GroupMemberFullInfo) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GroupMemberFullInfo) GetAdministratorLevel() int32 { + if m != nil { + return m.AdministratorLevel + } + return 0 +} + +func (m *GroupMemberFullInfo) GetJoinTime() uint64 { + if m != nil { + return m.JoinTime + } + return 0 +} + +func (m *GroupMemberFullInfo) GetNickName() string { + if m != nil { + return m.NickName + } + return "" +} + +func (m *GroupMemberFullInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} + +func (m *GroupMemberFullInfo) GetFriendRemark() string { + if m != nil { + return m.FriendRemark + } + return "" +} + +// private, Friends have permission to view +type UserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` @@ -850,146 +947,1263 @@ type UserInfoTip struct { Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *UserInfoTip) Reset() { *m = UserInfoTip{} } -func (m *UserInfoTip) String() string { return proto.CompactTextString(m) } -func (*UserInfoTip) ProtoMessage() {} -func (*UserInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{11} +func (m *UserInfo) Reset() { *m = UserInfo{} } +func (m *UserInfo) String() string { return proto.CompactTextString(m) } +func (*UserInfo) ProtoMessage() {} +func (*UserInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{12} } -func (m *UserInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfoTip.Unmarshal(m, b) +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } -func (m *UserInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfoTip.Marshal(b, m, deterministic) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } -func (dst *UserInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfoTip.Merge(dst, src) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } -func (m *UserInfoTip) XXX_Size() int { - return xxx_messageInfo_UserInfoTip.Size(m) +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) } -func (m *UserInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfoTip.DiscardUnknown(m) +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -var xxx_messageInfo_UserInfoTip proto.InternalMessageInfo +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (m *UserInfoTip) GetUserID() string { +func (m *UserInfo) GetUserID() string { if m != nil { return m.UserID } return "" } -func (m *UserInfoTip) GetName() string { +func (m *UserInfo) GetName() string { if m != nil { return m.Name } return "" } -func (m *UserInfoTip) GetIcon() string { +func (m *UserInfo) GetIcon() string { if m != nil { return m.Icon } return "" } -func (m *UserInfoTip) GetGender() int32 { +func (m *UserInfo) GetGender() int32 { if m != nil { return m.Gender } return 0 } -func (m *UserInfoTip) GetMobile() string { +func (m *UserInfo) GetMobile() string { if m != nil { return m.Mobile } return "" } -func (m *UserInfoTip) GetBirth() string { +func (m *UserInfo) GetBirth() string { if m != nil { return m.Birth } return "" } -func (m *UserInfoTip) GetEmail() string { +func (m *UserInfo) GetEmail() string { if m != nil { return m.Email } return "" } -func (m *UserInfoTip) GetEx() string { +// No permissions required +type PublicUserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } +func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } +func (*PublicUserInfo) ProtoMessage() {} +func (*PublicUserInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{13} +} +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) +} +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) +} +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) +} +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) +} +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo + +func (m *PublicUserInfo) GetUserID() string { if m != nil { - return m.Ex + return m.UserID } return "" } -type CreateGroupTip struct { - Group *GroupInfoTip `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Creator *UserInfoTip `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` - MemberList []*UserInfoTip `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *PublicUserInfo) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" } -func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } -func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } -func (*CreateGroupTip) ProtoMessage() {} -func (*CreateGroupTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{12} -} -func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) -} -func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) -} -func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupTip.Merge(dst, src) -} -func (m *CreateGroupTip) XXX_Size() int { - return xxx_messageInfo_CreateGroupTip.Size(m) -} -func (m *CreateGroupTip) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) +func (m *PublicUserInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" } -var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo +func (m *PublicUserInfo) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} -func (m *CreateGroupTip) GetGroup() *GroupInfoTip { +type TipsComm struct { + Detail []byte `protobuf:"bytes,1,opt,name=Detail,proto3" json:"Detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=DefaultTips" json:"DefaultTips,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TipsComm) Reset() { *m = TipsComm{} } +func (m *TipsComm) String() string { return proto.CompactTextString(m) } +func (*TipsComm) ProtoMessage() {} +func (*TipsComm) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{14} +} +func (m *TipsComm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TipsComm.Unmarshal(m, b) +} +func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) +} +func (dst *TipsComm) XXX_Merge(src proto.Message) { + xxx_messageInfo_TipsComm.Merge(dst, src) +} +func (m *TipsComm) XXX_Size() int { + return xxx_messageInfo_TipsComm.Size(m) +} +func (m *TipsComm) XXX_DiscardUnknown() { + xxx_messageInfo_TipsComm.DiscardUnknown(m) +} + +var xxx_messageInfo_TipsComm proto.InternalMessageInfo + +func (m *TipsComm) GetDetail() []byte { + if m != nil { + return m.Detail + } + return nil +} + +func (m *TipsComm) GetDefaultTips() string { + if m != nil { + return m.DefaultTips + } + return "" +} + +// ////////////////////group///////////////////// +// Actively join the group +type MemberEnterTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } +func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } +func (*MemberEnterTips) ProtoMessage() {} +func (*MemberEnterTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{15} +} +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) +} +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) +} +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) +} +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) +} +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo + +func (m *MemberEnterTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *CreateGroupTip) GetCreator() *UserInfoTip { +func (m *MemberEnterTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberEnterTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +// Actively leave the group +type MemberLeaveTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } +func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } +func (*MemberLeaveTips) ProtoMessage() {} +func (*MemberLeaveTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{16} +} +func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) +} +func (m *MemberLeaveTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberLeaveTips.Marshal(b, m, deterministic) +} +func (dst *MemberLeaveTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberLeaveTips.Merge(dst, src) +} +func (m *MemberLeaveTips) XXX_Size() int { + return xxx_messageInfo_MemberLeaveTips.Size(m) +} +func (m *MemberLeaveTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberLeaveTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberLeaveTips proto.InternalMessageInfo + +func (m *MemberLeaveTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberLeaveTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberLeaveTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberInvitedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } +func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInvitedTips) ProtoMessage() {} +func (*MemberInvitedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{17} +} +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) +} +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) +} +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) +} +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo + +func (m *MemberInvitedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberInvitedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberInvitedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberKickedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } +func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } +func (*MemberKickedTips) ProtoMessage() {} +func (*MemberKickedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{18} +} +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) +} +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) +} +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) +} +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) +} +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo + +func (m *MemberKickedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberKickedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberKickedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupMemberChangeInfo struct { + ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + MuteTime uint64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberChangeInfo) Reset() { *m = GroupMemberChangeInfo{} } +func (m *GroupMemberChangeInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberChangeInfo) ProtoMessage() {} +func (*GroupMemberChangeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{19} +} +func (m *GroupMemberChangeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberChangeInfo.Unmarshal(m, b) +} +func (m *GroupMemberChangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberChangeInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberChangeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberChangeInfo.Merge(dst, src) +} +func (m *GroupMemberChangeInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberChangeInfo.Size(m) +} +func (m *GroupMemberChangeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberChangeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberChangeInfo proto.InternalMessageInfo + +func (m *GroupMemberChangeInfo) GetChangeType() int32 { + if m != nil { + return m.ChangeType + } + return 0 +} + +func (m *GroupMemberChangeInfo) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMuteTime() uint64 { + if m != nil { + return m.MuteTime + } + return 0 +} + +type MemberInfoChangedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + MemberChanged *GroupMemberChangeInfo `protobuf:"bytes,2,opt,name=MemberChanged" json:"MemberChanged,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } +func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInfoChangedTips) ProtoMessage() {} +func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{20} +} +func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) +} +func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) +} +func (m *MemberInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_MemberInfoChangedTips.Size(m) +} +func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo + +func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInfoChangedTips) GetMemberChanged() *GroupMemberChangeInfo { + if m != nil { + return m.MemberChanged + } + return nil +} + +type GroupCreatedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } +func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } +func (*GroupCreatedTips) ProtoMessage() {} +func (*GroupCreatedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{21} +} +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) +} +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) +} +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) +} +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo + +func (m *GroupCreatedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupCreatedTips) GetCreator() *GroupMemberFullInfo { if m != nil { return m.Creator } return nil } -func (m *CreateGroupTip) GetMemberList() []*UserInfoTip { +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { if m != nil { return m.MemberList } return nil } +func (m *GroupCreatedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupInfoChangedTips struct { + ChangedType int32 `protobuf:"varint,1,opt,name=ChangedType" json:"ChangedType,omitempty"` + Group *GroupInfo `protobuf:"bytes,2,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } +func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*GroupInfoChangedTips) ProtoMessage() {} +func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{22} +} +func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) +} +func (m *GroupInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *GroupInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoChangedTips.Merge(dst, src) +} +func (m *GroupInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoChangedTips.Size(m) +} +func (m *GroupInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfoChangedTips proto.InternalMessageInfo + +func (m *GroupInfoChangedTips) GetChangedType() int32 { + if m != nil { + return m.ChangedType + } + return 0 +} + +func (m *GroupInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +type ReceiveJoinApplicationTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=Applicant" json:"Applicant,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicationTips{} } +func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } +func (*ReceiveJoinApplicationTips) ProtoMessage() {} +func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{23} +} +func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) +} +func (m *ReceiveJoinApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReceiveJoinApplicationTips.Marshal(b, m, deterministic) +} +func (dst *ReceiveJoinApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReceiveJoinApplicationTips.Merge(dst, src) +} +func (m *ReceiveJoinApplicationTips) XXX_Size() int { + return xxx_messageInfo_ReceiveJoinApplicationTips.Size(m) +} +func (m *ReceiveJoinApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_ReceiveJoinApplicationTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ReceiveJoinApplicationTips proto.InternalMessageInfo + +func (m *ReceiveJoinApplicationTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetApplicant() *PublicUserInfo { + if m != nil { + return m.Applicant + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +type ApplicationProcessedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Result int32 `protobuf:"varint,3,opt,name=Result" json:"Result,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTips{} } +func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } +func (*ApplicationProcessedTips) ProtoMessage() {} +func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{24} +} +func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) +} +func (m *ApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplicationProcessedTips.Marshal(b, m, deterministic) +} +func (dst *ApplicationProcessedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationProcessedTips.Merge(dst, src) +} +func (m *ApplicationProcessedTips) XXX_Size() int { + return xxx_messageInfo_ApplicationProcessedTips.Size(m) +} +func (m *ApplicationProcessedTips) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationProcessedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationProcessedTips proto.InternalMessageInfo + +func (m *ApplicationProcessedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ApplicationProcessedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *ApplicationProcessedTips) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + +func (m *ApplicationProcessedTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +// ////////////////////friend///////////////////// +type FriendInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` + CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + FriendUserInfo *UserInfo `protobuf:"bytes,4,opt,name=FriendUserInfo" json:"FriendUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendInfo) Reset() { *m = FriendInfo{} } +func (m *FriendInfo) String() string { return proto.CompactTextString(m) } +func (*FriendInfo) ProtoMessage() {} +func (*FriendInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{25} +} +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) +} +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) +} +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) +} +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) +} +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo + +func (m *FriendInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *FriendInfo) GetRemark() string { + if m != nil { + return m.Remark + } + return "" +} + +func (m *FriendInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *FriendInfo) GetFriendUserInfo() *UserInfo { + if m != nil { + return m.FriendUserInfo + } + return nil +} + +type FriendApplication struct { + AddTime uint64 `protobuf:"varint,4,opt,name=AddTime" json:"AddTime,omitempty"` + AddSource string `protobuf:"bytes,5,opt,name=AddSource" json:"AddSource,omitempty"` + AddWording string `protobuf:"bytes,6,opt,name=AddWording" json:"AddWording,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplication) Reset() { *m = FriendApplication{} } +func (m *FriendApplication) String() string { return proto.CompactTextString(m) } +func (*FriendApplication) ProtoMessage() {} +func (*FriendApplication) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{26} +} +func (m *FriendApplication) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplication.Unmarshal(m, b) +} +func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) +} +func (dst *FriendApplication) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplication.Merge(dst, src) +} +func (m *FriendApplication) XXX_Size() int { + return xxx_messageInfo_FriendApplication.Size(m) +} +func (m *FriendApplication) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplication.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplication proto.InternalMessageInfo + +func (m *FriendApplication) GetAddTime() uint64 { + if m != nil { + return m.AddTime + } + return 0 +} + +func (m *FriendApplication) GetAddSource() string { + if m != nil { + return m.AddSource + } + return "" +} + +func (m *FriendApplication) GetAddWording() string { + if m != nil { + return m.AddWording + } + return "" +} + +// user1 add user2 +type FriendApplicationListAddedTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + Application *FriendApplication `protobuf:"bytes,2,opt,name=Application" json:"Application,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAddedTips) Reset() { *m = FriendApplicationListAddedTips{} } +func (m *FriendApplicationListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAddedTips) ProtoMessage() {} +func (*FriendApplicationListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{27} +} +func (m *FriendApplicationListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAddedTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAddedTips.Merge(dst, src) +} +func (m *FriendApplicationListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAddedTips.Size(m) +} +func (m *FriendApplicationListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAddedTips proto.InternalMessageInfo + +func (m *FriendApplicationListAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetApplication() *FriendApplication { + if m != nil { + return m.Application + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 accept +type FriendApplicationListAcceptTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAcceptTips) Reset() { *m = FriendApplicationListAcceptTips{} } +func (m *FriendApplicationListAcceptTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAcceptTips) ProtoMessage() {} +func (*FriendApplicationListAcceptTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{28} +} +func (m *FriendApplicationListAcceptTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAcceptTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAcceptTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAcceptTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAcceptTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAcceptTips.Merge(dst, src) +} +func (m *FriendApplicationListAcceptTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAcceptTips.Size(m) +} +func (m *FriendApplicationListAcceptTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAcceptTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAcceptTips proto.InternalMessageInfo + +func (m *FriendApplicationListAcceptTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAcceptTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 reject +type FriendApplicationListRejectTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListRejectTips) Reset() { *m = FriendApplicationListRejectTips{} } +func (m *FriendApplicationListRejectTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListRejectTips) ProtoMessage() {} +func (*FriendApplicationListRejectTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{29} +} +func (m *FriendApplicationListRejectTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListRejectTips.Unmarshal(m, b) +} +func (m *FriendApplicationListRejectTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListRejectTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListRejectTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListRejectTips.Merge(dst, src) +} +func (m *FriendApplicationListRejectTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListRejectTips.Size(m) +} +func (m *FriendApplicationListRejectTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListRejectTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListRejectTips proto.InternalMessageInfo + +func (m *FriendApplicationListRejectTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListRejectTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +type FriendListAddedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListAddedTips) Reset() { *m = FriendListAddedTips{} } +func (m *FriendListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListAddedTips) ProtoMessage() {} +func (*FriendListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{30} +} +func (m *FriendListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListAddedTips.Unmarshal(m, b) +} +func (m *FriendListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListAddedTips.Merge(dst, src) +} +func (m *FriendListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendListAddedTips.Size(m) +} +func (m *FriendListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListAddedTips proto.InternalMessageInfo + +func (m *FriendListAddedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListDeletedTips) Reset() { *m = FriendListDeletedTips{} } +func (m *FriendListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListDeletedTips) ProtoMessage() {} +func (*FriendListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{31} +} +func (m *FriendListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListDeletedTips.Unmarshal(m, b) +} +func (m *FriendListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListDeletedTips.Merge(dst, src) +} +func (m *FriendListDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendListDeletedTips.Size(m) +} +func (m *FriendListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListDeletedTips proto.InternalMessageInfo + +func (m *FriendListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListAddTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListAddTips) Reset() { *m = BlackListAddTips{} } +func (m *BlackListAddTips) String() string { return proto.CompactTextString(m) } +func (*BlackListAddTips) ProtoMessage() {} +func (*BlackListAddTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{32} +} +func (m *BlackListAddTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListAddTips.Unmarshal(m, b) +} +func (m *BlackListAddTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListAddTips.Marshal(b, m, deterministic) +} +func (dst *BlackListAddTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListAddTips.Merge(dst, src) +} +func (m *BlackListAddTips) XXX_Size() int { + return xxx_messageInfo_BlackListAddTips.Size(m) +} +func (m *BlackListAddTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListAddTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListAddTips proto.InternalMessageInfo + +func (m *BlackListAddTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListDeletedTips) Reset() { *m = BlackListDeletedTips{} } +func (m *BlackListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*BlackListDeletedTips) ProtoMessage() {} +func (*BlackListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{33} +} +func (m *BlackListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListDeletedTips.Unmarshal(m, b) +} +func (m *BlackListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *BlackListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListDeletedTips.Merge(dst, src) +} +func (m *BlackListDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackListDeletedTips.Size(m) +} +func (m *BlackListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListDeletedTips proto.InternalMessageInfo + +func (m *BlackListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendInfoChangedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } +func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*FriendInfoChangedTips) ProtoMessage() {} +func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{34} +} +func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) +} +func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) +} +func (m *FriendInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_FriendInfoChangedTips.Size(m) +} +func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo + +func (m *FriendInfoChangedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +// ////////////////////user///////////////////// +type SelfInfoUpdatedTips struct { + SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } +func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } +func (*SelfInfoUpdatedTips) ProtoMessage() {} +func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{35} +} +func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) +} +func (m *SelfInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SelfInfoUpdatedTips.Marshal(b, m, deterministic) +} +func (dst *SelfInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_SelfInfoUpdatedTips.Merge(dst, src) +} +func (m *SelfInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_SelfInfoUpdatedTips.Size(m) +} +func (m *SelfInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_SelfInfoUpdatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_SelfInfoUpdatedTips proto.InternalMessageInfo + +func (m *SelfInfoUpdatedTips) GetSelfUserInfo() *UserInfo { + if m != nil { + return m.SelfUserInfo + } + return nil +} + func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") @@ -1002,77 +2216,142 @@ func init() { proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") - proto.RegisterType((*GroupInfoTip)(nil), "open_im_sdk.GroupInfoTip") - proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") - proto.RegisterType((*CreateGroupTip)(nil), "open_im_sdk.CreateGroupTip") + proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") + proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") + proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") + proto.RegisterType((*TipsComm)(nil), "open_im_sdk.TipsComm") + proto.RegisterType((*MemberEnterTips)(nil), "open_im_sdk.MemberEnterTips") + proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") + proto.RegisterType((*MemberInvitedTips)(nil), "open_im_sdk.MemberInvitedTips") + proto.RegisterType((*MemberKickedTips)(nil), "open_im_sdk.MemberKickedTips") + proto.RegisterType((*GroupMemberChangeInfo)(nil), "open_im_sdk.GroupMemberChangeInfo") + proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") + proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") + proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") + proto.RegisterType((*ReceiveJoinApplicationTips)(nil), "open_im_sdk.ReceiveJoinApplicationTips") + proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") + proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") + proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") + proto.RegisterType((*FriendApplicationListAddedTips)(nil), "open_im_sdk.FriendApplicationListAddedTips") + proto.RegisterType((*FriendApplicationListAcceptTips)(nil), "open_im_sdk.FriendApplicationListAcceptTips") + proto.RegisterType((*FriendApplicationListRejectTips)(nil), "open_im_sdk.FriendApplicationListRejectTips") + proto.RegisterType((*FriendListAddedTips)(nil), "open_im_sdk.FriendListAddedTips") + proto.RegisterType((*FriendListDeletedTips)(nil), "open_im_sdk.FriendListDeletedTips") + proto.RegisterType((*BlackListAddTips)(nil), "open_im_sdk.BlackListAddTips") + proto.RegisterType((*BlackListDeletedTips)(nil), "open_im_sdk.BlackListDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") + proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_d55c44e342c7a2b5) } +func init() { proto.RegisterFile("ws.proto", fileDescriptor_ws_e1a0eca386827677) } -var fileDescriptor_ws_d55c44e342c7a2b5 = []byte{ - // 1021 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcb, 0x6e, 0x23, 0xb7, - 0x12, 0x85, 0xba, 0xf5, 0x2c, 0xc9, 0xf6, 0x80, 0xd7, 0xf0, 0xed, 0x0c, 0x82, 0x40, 0x68, 0x04, - 0x81, 0x30, 0x0b, 0x19, 0xf0, 0x6c, 0x06, 0x13, 0x04, 0x41, 0x6c, 0xc9, 0x86, 0x82, 0x91, 0x6d, - 0xb4, 0x3c, 0x9b, 0x6c, 0x8c, 0x76, 0x8b, 0x92, 0x1b, 0xee, 0x87, 0xd4, 0xa4, 0x6c, 0xf9, 0x3f, - 0xb2, 0xcd, 0x37, 0x64, 0x9d, 0x5f, 0xc8, 0x22, 0x7f, 0x14, 0x20, 0xa8, 0x22, 0x5b, 0x26, 0x25, - 0xe7, 0xb1, 0xe3, 0x39, 0xaa, 0x22, 0x59, 0xe7, 0x54, 0xb5, 0x08, 0x07, 0x62, 0xfa, 0x70, 0xfb, - 0x24, 0x8e, 0x9f, 0x44, 0x7f, 0x51, 0xe4, 0x32, 0x67, 0xed, 0x7c, 0xc1, 0xb3, 0xdb, 0x38, 0xbd, - 0x15, 0xd3, 0x07, 0xff, 0xf7, 0x0a, 0x78, 0xd7, 0xab, 0x24, 0x19, 0x73, 0x21, 0xc2, 0x39, 0x3f, - 0x7d, 0x9e, 0xf0, 0xe5, 0xa7, 0x58, 0xc8, 0x80, 0x8b, 0x05, 0x3b, 0x82, 0xfa, 0x38, 0x5c, 0x4f, - 0xf8, 0xd2, 0xab, 0x74, 0x2b, 0x3d, 0x37, 0xd0, 0x88, 0xf8, 0x38, 0x43, 0xde, 0xd1, 0x3c, 0x21, - 0xf6, 0x3d, 0xec, 0x4d, 0xe2, 0x6c, 0x9e, 0xf0, 0xcf, 0x82, 0x17, 0x63, 0x31, 0xf7, 0xdc, 0xae, - 0xdb, 0x6b, 0x9f, 0x7c, 0xd1, 0x37, 0x4e, 0xec, 0x5f, 0x84, 0xf2, 0x9e, 0x17, 0xe7, 0x79, 0x91, - 0x86, 0x32, 0xb0, 0xe3, 0xd9, 0x77, 0xd0, 0xb9, 0x28, 0xf2, 0xd5, 0xa2, 0xcc, 0xaf, 0xfe, 0x5b, - 0xbe, 0x15, 0xee, 0xbf, 0x87, 0xff, 0xbf, 0x5e, 0xcb, 0x92, 0x79, 0xd0, 0x10, 0x0a, 0x79, 0x95, - 0xae, 0xdb, 0x73, 0x83, 0x12, 0xfa, 0x87, 0xc0, 0x2e, 0xb8, 0x1c, 0x87, 0xeb, 0x1f, 0xb2, 0xa9, - 0xaa, 0x23, 0xe0, 0x4b, 0x7f, 0x08, 0xff, 0xdb, 0x61, 0x95, 0x22, 0xa9, 0xa5, 0x48, 0xba, 0x51, - 0x24, 0xb5, 0x14, 0x51, 0xc8, 0xff, 0x11, 0x3a, 0xe6, 0x7d, 0xd9, 0x3e, 0x38, 0xa3, 0x01, 0xe5, - 0xb6, 0x02, 0x67, 0x34, 0x60, 0xef, 0xa0, 0x4a, 0x77, 0x72, 0xa8, 0xd0, 0x23, 0xab, 0xd0, 0xb1, - 0x98, 0xeb, 0x2a, 0x29, 0xc6, 0xff, 0xd3, 0x81, 0xd6, 0x86, 0xc3, 0x13, 0x27, 0x3c, 0x9b, 0x6e, - 0x76, 0xd3, 0x08, 0xf9, 0x80, 0x47, 0x8f, 0xa3, 0x01, 0xdd, 0xa4, 0x15, 0x68, 0x84, 0x02, 0x60, - 0x72, 0x91, 0xa7, 0x9e, 0xdb, 0xad, 0xf4, 0x6a, 0x41, 0x09, 0x59, 0x17, 0xda, 0x67, 0x79, 0x26, - 0x79, 0x26, 0x6f, 0x9e, 0x17, 0xdc, 0xab, 0xd2, 0xaf, 0x26, 0x85, 0x11, 0x13, 0x5e, 0x3c, 0x92, - 0xc8, 0xa3, 0x81, 0x57, 0xa3, 0x8d, 0x4d, 0x0a, 0x77, 0xd7, 0x09, 0x5e, 0x9d, 0x7e, 0x2d, 0x21, - 0x7b, 0x03, 0x2e, 0xca, 0xd2, 0x20, 0x59, 0x70, 0xc9, 0xde, 0x42, 0x13, 0xef, 0x7a, 0x13, 0xa7, - 0xdc, 0x6b, 0x12, 0xbd, 0xc1, 0xec, 0x1d, 0xbc, 0xc1, 0x35, 0x2f, 0xae, 0x93, 0x50, 0xce, 0xf2, - 0x22, 0x1d, 0x0d, 0xbc, 0x16, 0x5d, 0x68, 0x87, 0x67, 0xdf, 0xc0, 0xbe, 0xe2, 0x2e, 0xe3, 0xe8, - 0xe1, 0x32, 0x4c, 0xb9, 0x07, 0x74, 0xf4, 0x16, 0xcb, 0xbe, 0x86, 0x3d, 0xc5, 0x9c, 0x87, 0x11, - 0xff, 0x1c, 0x7c, 0xf2, 0xda, 0x14, 0x66, 0x93, 0xa4, 0x42, 0x12, 0xf3, 0x4c, 0xaa, 0x1a, 0x3b, - 0xaa, 0x46, 0x83, 0xf2, 0xff, 0x70, 0x61, 0x1f, 0x3b, 0x0d, 0xf3, 0xc6, 0x62, 0x8e, 0x5d, 0x75, - 0x0a, 0x8d, 0xab, 0x85, 0x8c, 0xf3, 0x4c, 0x50, 0x57, 0xb5, 0x4f, 0x7a, 0x96, 0x83, 0x76, 0x74, - 0x5f, 0x87, 0x0e, 0x33, 0x59, 0x3c, 0x07, 0x65, 0xe2, 0x2b, 0x65, 0x38, 0xff, 0xad, 0x0c, 0xf7, - 0xb5, 0x32, 0xbe, 0x02, 0x30, 0xa4, 0x53, 0x5e, 0x1a, 0x8c, 0xb2, 0x52, 0x88, 0x38, 0xcf, 0xc8, - 0xec, 0x9a, 0x32, 0xdb, 0xa0, 0xcc, 0x46, 0xa9, 0xff, 0x63, 0xa3, 0x34, 0x76, 0x1b, 0xe5, 0xa5, - 0xf9, 0x9a, 0x56, 0xf3, 0x7d, 0x09, 0xad, 0xf3, 0xbc, 0x88, 0x38, 0xf5, 0x7a, 0xab, 0xeb, 0xf6, - 0x5a, 0xc1, 0x0b, 0x61, 0x36, 0x0f, 0xd8, 0xcd, 0xb3, 0x65, 0x4a, 0x7b, 0xc7, 0x94, 0xb7, 0x1f, - 0xa1, 0x63, 0xca, 0x8a, 0xed, 0xf6, 0xc0, 0x9f, 0xf5, 0x4c, 0xe0, 0x92, 0x1d, 0x42, 0xed, 0x31, - 0x4c, 0x56, 0x4a, 0xd6, 0x5a, 0xa0, 0xc0, 0x47, 0xe7, 0x43, 0xc5, 0x5f, 0xc2, 0x81, 0xe5, 0x90, - 0x58, 0x6c, 0x77, 0x7a, 0x65, 0xb7, 0xd3, 0xb7, 0xae, 0xe4, 0xec, 0x5c, 0x09, 0xfb, 0x5b, 0x94, - 0xfd, 0xed, 0xaa, 0xfe, 0x2e, 0xb1, 0xff, 0x8b, 0x4b, 0xea, 0x0e, 0x42, 0x19, 0xa2, 0x58, 0xc2, - 0x9a, 0x60, 0xb1, 0x99, 0xe0, 0xc2, 0x9a, 0x60, 0x85, 0xf0, 0x64, 0x61, 0x58, 0xa7, 0xa6, 0xd8, - 0xa4, 0x50, 0xc8, 0x54, 0x5b, 0xa7, 0x9c, 0x2f, 0x21, 0xe6, 0x46, 0x86, 0x75, 0xda, 0xf6, 0xc8, - 0x9e, 0x71, 0x61, 0x54, 0xae, 0xa6, 0xd8, 0xa4, 0x70, 0x77, 0x9d, 0x40, 0xd6, 0xb7, 0x82, 0x12, - 0x5a, 0x15, 0x37, 0xed, 0x8a, 0xd1, 0x10, 0xc1, 0x97, 0x34, 0xc4, 0x6e, 0x80, 0x4b, 0x9c, 0x71, - 0xb1, 0x3d, 0xe3, 0xa0, 0x66, 0x5c, 0xbc, 0x32, 0xe3, 0xc2, 0x1e, 0x0e, 0xd5, 0x03, 0x5b, 0x2c, - 0x0e, 0x87, 0xb0, 0x86, 0x43, 0xcd, 0xaf, 0x4d, 0x92, 0x0a, 0x86, 0x77, 0x7b, 0xaa, 0x46, 0x83, - 0xf2, 0xc7, 0x70, 0x70, 0x35, 0x9b, 0x25, 0x71, 0xc6, 0xaf, 0x57, 0xe2, 0x7e, 0x94, 0xcd, 0x72, - 0xec, 0x9f, 0x9b, 0x58, 0x26, 0x5c, 0xbb, 0xa4, 0x00, 0x63, 0x50, 0x1d, 0x70, 0x11, 0x69, 0x8b, - 0x68, 0x8d, 0xa5, 0x0e, 0xd7, 0x52, 0xcf, 0x25, 0x2e, 0xfd, 0x9f, 0x1d, 0xfd, 0x87, 0x86, 0x3b, - 0xdd, 0xc4, 0x0b, 0xd4, 0x50, 0xe1, 0xd2, 0xf4, 0x12, 0xe2, 0x88, 0xd0, 0xd2, 0xf8, 0x02, 0xbc, - 0x10, 0xcc, 0x87, 0xce, 0x65, 0x2e, 0xe3, 0x59, 0x1c, 0x85, 0xd8, 0xec, 0xfa, 0x0c, 0x8b, 0xc3, - 0x98, 0x51, 0x26, 0x8b, 0x7c, 0xba, 0x8a, 0x28, 0xa6, 0xaa, 0x62, 0x4c, 0x0e, 0xcf, 0x27, 0x31, - 0x8a, 0x44, 0x7f, 0xc5, 0x4b, 0x88, 0xff, 0x4c, 0xc3, 0xb5, 0xb6, 0xdd, 0x19, 0xae, 0x31, 0xf2, - 0xea, 0x29, 0xe3, 0xc5, 0x68, 0x50, 0xba, 0xad, 0x21, 0x7e, 0x62, 0xce, 0x0a, 0x1e, 0x4a, 0xbe, - 0xf1, 0xbb, 0x1a, 0x18, 0x0c, 0xaa, 0x3c, 0xe6, 0xe9, 0x1d, 0x2f, 0xce, 0xf2, 0x55, 0x26, 0xc9, - 0xf9, 0xbd, 0xc0, 0xa4, 0xfc, 0xdf, 0x2a, 0xd0, 0xc6, 0xc9, 0x2b, 0x55, 0x39, 0x82, 0x3a, 0xc1, - 0xcd, 0x24, 0x28, 0x84, 0x22, 0x1b, 0x72, 0xd0, 0x1a, 0xb9, 0x51, 0xb4, 0x51, 0x80, 0xd6, 0x98, - 0x7f, 0x41, 0x46, 0xeb, 0xb6, 0xd7, 0x88, 0xde, 0x29, 0xf9, 0x5d, 0x9c, 0x70, 0x5d, 0xac, 0x46, - 0x68, 0xe9, 0x69, 0x5c, 0xc8, 0x7b, 0x5d, 0xae, 0x02, 0xc8, 0x0e, 0xd3, 0x30, 0x4e, 0x74, 0xbd, - 0x0a, 0x68, 0x5d, 0x9a, 0xa5, 0x2e, 0xfe, 0xaf, 0x15, 0xd8, 0x57, 0xc5, 0x92, 0x3b, 0x78, 0xfd, - 0x63, 0xa8, 0xcd, 0x71, 0x4d, 0xb7, 0xdf, 0x79, 0xae, 0x18, 0xf6, 0x07, 0x2a, 0x8e, 0x9d, 0x40, - 0x23, 0xc2, 0x2d, 0xf2, 0x82, 0x4a, 0x6b, 0x9f, 0x78, 0x3b, 0x7f, 0x1b, 0x65, 0x46, 0x19, 0xc8, - 0x3e, 0x00, 0xa4, 0x24, 0x21, 0x7d, 0x43, 0xd5, 0xc3, 0xea, 0xef, 0xd3, 0x8c, 0xd8, 0xd3, 0xa3, - 0x9f, 0x0e, 0xfb, 0xc7, 0xea, 0x11, 0xf8, 0xad, 0x11, 0x7f, 0x57, 0xa7, 0xe7, 0xe0, 0xfb, 0xbf, - 0x02, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x41, 0x03, 0xcb, 0x21, 0x0a, 0x00, 0x00, +var fileDescriptor_ws_e1a0eca386827677 = []byte{ + // 1689 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xd7, 0x7a, 0x1d, 0xc7, 0x7e, 0x76, 0xd2, 0x74, 0x93, 0xb4, 0x4b, 0x40, 0xc5, 0x5a, 0x21, + 0x14, 0x55, 0x28, 0x88, 0xf4, 0x40, 0x5b, 0xa9, 0xa2, 0x49, 0x9c, 0xa4, 0x2e, 0x71, 0x1d, 0xad, + 0x53, 0x71, 0xac, 0x36, 0xbb, 0x63, 0x67, 0xc9, 0xfe, 0x71, 0x76, 0xd6, 0x6e, 0xf3, 0x29, 0x38, + 0x22, 0x21, 0x55, 0x70, 0x81, 0x0f, 0xc0, 0x97, 0x40, 0xe2, 0x80, 0x38, 0xc3, 0x95, 0x2b, 0x1f, + 0x01, 0x09, 0xbd, 0x99, 0xd9, 0xf5, 0x8c, 0xed, 0x26, 0xa9, 0x8b, 0x28, 0xe2, 0x36, 0xef, 0xe7, + 0x37, 0xb3, 0xbf, 0xf7, 0xde, 0xef, 0xcd, 0xbc, 0x04, 0xca, 0xcf, 0xe9, 0x46, 0x3f, 0x89, 0xd3, + 0xd8, 0xa8, 0xc6, 0x7d, 0x12, 0x3d, 0xf3, 0xc3, 0x67, 0xd4, 0x3b, 0xb5, 0x7e, 0xd6, 0xc0, 0x3c, + 0x1c, 0x04, 0x41, 0x8b, 0x50, 0xea, 0xf4, 0xc8, 0xf6, 0x79, 0x87, 0x9c, 0x1d, 0xf8, 0x34, 0xb5, + 0x09, 0xed, 0x1b, 0x37, 0xa0, 0xd4, 0x72, 0x5e, 0x74, 0xc8, 0x99, 0xa9, 0xd5, 0xb5, 0x75, 0xdd, + 0x16, 0x16, 0xc3, 0xfd, 0x08, 0xf1, 0x82, 0xc0, 0x99, 0x65, 0x7c, 0x06, 0x0b, 0x1d, 0x3f, 0xea, + 0x05, 0xe4, 0x29, 0x25, 0x49, 0x8b, 0xf6, 0x4c, 0xbd, 0xae, 0xaf, 0x57, 0x37, 0xdf, 0xd9, 0x90, + 0xbe, 0xb8, 0xb1, 0xef, 0xa4, 0x27, 0x24, 0xd9, 0x8b, 0x93, 0xd0, 0x49, 0x6d, 0xd5, 0xdf, 0x78, + 0x00, 0xb5, 0xfd, 0x24, 0x1e, 0xf4, 0xb3, 0xfd, 0xc5, 0xcb, 0xf6, 0x2b, 0xee, 0xd6, 0x1d, 0xb8, + 0x39, 0x3d, 0x96, 0x33, 0xc3, 0x84, 0x79, 0xca, 0x2d, 0x53, 0xab, 0xeb, 0xeb, 0xba, 0x9d, 0x99, + 0xd6, 0x0a, 0x18, 0xfb, 0x24, 0x6d, 0x39, 0x2f, 0xb6, 0x22, 0x8f, 0xc7, 0x61, 0x93, 0x33, 0x6b, + 0x17, 0x96, 0x27, 0x50, 0x9e, 0x91, 0x50, 0xc9, 0x48, 0x98, 0x67, 0x24, 0x54, 0x32, 0xc2, 0x2d, + 0xeb, 0x31, 0xd4, 0x64, 0xbe, 0xc6, 0x22, 0x14, 0x9a, 0x0d, 0xb6, 0xb7, 0x62, 0x17, 0x9a, 0x0d, + 0xe3, 0x36, 0x14, 0x19, 0xa7, 0x02, 0x0b, 0xf4, 0x86, 0x12, 0x68, 0x8b, 0xf6, 0x44, 0x94, 0xcc, + 0xc7, 0xfa, 0xab, 0x00, 0x95, 0x1c, 0xc3, 0x2f, 0x76, 0x48, 0xe4, 0xe5, 0xa7, 0x09, 0x0b, 0x71, + 0x9b, 0xb8, 0xc3, 0x66, 0x83, 0x31, 0xa9, 0xd8, 0xc2, 0xc2, 0x04, 0xe0, 0xe6, 0x24, 0x0e, 0x4d, + 0xbd, 0xae, 0xad, 0xcf, 0xd9, 0x99, 0x69, 0xd4, 0xa1, 0xba, 0x13, 0x47, 0x29, 0x89, 0xd2, 0xa3, + 0xf3, 0x3e, 0x31, 0x8b, 0xec, 0x57, 0x19, 0x42, 0x8f, 0x0e, 0x49, 0x86, 0x2c, 0xc9, 0xcd, 0x86, + 0x39, 0xc7, 0x0e, 0x96, 0x21, 0x3c, 0x5d, 0x6c, 0x30, 0x4b, 0xec, 0xd7, 0xcc, 0x34, 0x96, 0x40, + 0xc7, 0xb4, 0xcc, 0xb3, 0xb4, 0xe0, 0xd2, 0x58, 0x83, 0x32, 0x72, 0x3d, 0xf2, 0x43, 0x62, 0x96, + 0x19, 0x9c, 0xdb, 0xc6, 0x6d, 0x58, 0xc2, 0x35, 0x49, 0x0e, 0x03, 0x27, 0xed, 0xc6, 0x49, 0xd8, + 0x6c, 0x98, 0x15, 0x46, 0x68, 0x02, 0x37, 0x3e, 0x84, 0x45, 0x8e, 0x3d, 0xf1, 0xdd, 0xd3, 0x27, + 0x4e, 0x48, 0x4c, 0x60, 0x9f, 0x1e, 0x43, 0x8d, 0x0f, 0x60, 0x81, 0x23, 0x7b, 0x8e, 0x4b, 0x9e, + 0xda, 0x07, 0x66, 0x95, 0xb9, 0xa9, 0x20, 0xcb, 0x42, 0xe0, 0x93, 0x28, 0xe5, 0x31, 0xd6, 0x78, + 0x8c, 0x12, 0x64, 0xfd, 0xa2, 0xc3, 0x22, 0x2a, 0x0d, 0xf7, 0xb5, 0x68, 0x0f, 0x55, 0xb5, 0x0d, + 0xf3, 0xed, 0x7e, 0xea, 0xc7, 0x11, 0x65, 0xaa, 0xaa, 0x6e, 0xae, 0x2b, 0x15, 0x54, 0xbd, 0x37, + 0x84, 0xeb, 0x6e, 0x94, 0x26, 0xe7, 0x76, 0xb6, 0x71, 0x4a, 0x18, 0x85, 0xab, 0x85, 0xa1, 0x4f, + 0x0b, 0xe3, 0x16, 0x80, 0x94, 0x3a, 0x5e, 0x4b, 0x09, 0xe1, 0xa5, 0xa4, 0xd4, 0x8f, 0x23, 0x56, + 0xec, 0x39, 0x5e, 0x6c, 0x09, 0x92, 0x85, 0x52, 0xba, 0x50, 0x28, 0xf3, 0x93, 0x42, 0x19, 0x89, + 0xaf, 0xac, 0x88, 0xef, 0x3d, 0xa8, 0xec, 0xc5, 0x89, 0x4b, 0x98, 0xd6, 0x2b, 0x75, 0x7d, 0xbd, + 0x62, 0x8f, 0x00, 0x59, 0x3c, 0xa0, 0x8a, 0x67, 0xac, 0x28, 0xd5, 0x89, 0xa2, 0xac, 0xdd, 0x87, + 0x9a, 0x9c, 0x56, 0x94, 0xdb, 0x29, 0x39, 0x17, 0x3d, 0x81, 0x4b, 0x63, 0x05, 0xe6, 0x86, 0x4e, + 0x30, 0xe0, 0x69, 0x9d, 0xb3, 0xb9, 0x71, 0xbf, 0x70, 0x57, 0xb3, 0xce, 0xe0, 0x9a, 0x52, 0x21, + 0xda, 0x1f, 0x57, 0xba, 0x36, 0xa9, 0xf4, 0x31, 0x4a, 0x85, 0x09, 0x4a, 0xa8, 0x6f, 0x9a, 0xe9, + 0x5b, 0xe7, 0xfa, 0xce, 0x6c, 0xeb, 0xa5, 0xce, 0xb2, 0xdb, 0x70, 0x52, 0x07, 0x93, 0x45, 0x95, + 0x0e, 0xa6, 0x79, 0x07, 0x27, 0x4a, 0x07, 0x73, 0x0b, 0xbf, 0x4c, 0xa5, 0xd2, 0xf1, 0x2e, 0x96, + 0x21, 0x4c, 0x64, 0x28, 0x4a, 0xc7, 0x2b, 0x9f, 0x99, 0xb8, 0xd7, 0x95, 0x4a, 0x27, 0xca, 0xee, + 0xaa, 0x3d, 0x4e, 0xa5, 0xc8, 0x79, 0x17, 0xcb, 0x10, 0x9e, 0x2e, 0x36, 0xb0, 0xd2, 0xd7, 0xec, + 0xcc, 0x54, 0x22, 0x2e, 0xab, 0x11, 0x63, 0x41, 0x28, 0x39, 0x63, 0x4d, 0xac, 0xdb, 0xb8, 0xc4, + 0x1e, 0xa7, 0xe3, 0x3d, 0x0e, 0xbc, 0xc7, 0xe9, 0x94, 0x1e, 0xa7, 0x6a, 0x73, 0x70, 0x0d, 0x8c, + 0xa1, 0xd8, 0x1c, 0x54, 0x69, 0x0e, 0xde, 0xbf, 0x2a, 0xc8, 0xb2, 0x20, 0xd5, 0x6e, 0x81, 0xc7, + 0x28, 0x41, 0xd6, 0xd7, 0x1a, 0x5c, 0x6b, 0x77, 0xbb, 0x81, 0x1f, 0x91, 0xc3, 0x01, 0x3d, 0x69, + 0x46, 0xdd, 0x18, 0x05, 0x74, 0xe4, 0xa7, 0x01, 0x11, 0x65, 0xe2, 0x86, 0x61, 0x40, 0xb1, 0x41, + 0xa8, 0x2b, 0x6a, 0xc4, 0xd6, 0x18, 0xeb, 0xee, 0x8b, 0x54, 0x34, 0x26, 0x2e, 0x0d, 0x0b, 0x6a, + 0x7e, 0xbb, 0x83, 0x47, 0x75, 0xe2, 0x41, 0xe4, 0xb1, 0xb2, 0x54, 0x6c, 0x05, 0x43, 0xee, 0x7e, + 0xbb, 0xb3, 0xed, 0x78, 0x3d, 0xb2, 0x13, 0x0f, 0xa2, 0x94, 0x55, 0xa7, 0x6c, 0xab, 0xa0, 0xf5, + 0x4d, 0x01, 0x2a, 0xec, 0xb1, 0x63, 0x9c, 0x4c, 0x98, 0xe7, 0x46, 0x26, 0x9e, 0xcc, 0xc4, 0x56, + 0x63, 0x4b, 0xe9, 0x26, 0x19, 0x01, 0xc8, 0xe7, 0x49, 0x9c, 0xfa, 0x5d, 0xdf, 0x75, 0xb0, 0x69, + 0x04, 0x55, 0x05, 0x43, 0x9f, 0x66, 0x94, 0x26, 0xb1, 0x37, 0x70, 0x99, 0x8f, 0xe0, 0x2c, 0x63, + 0xf8, 0x7d, 0x96, 0xd4, 0x24, 0x10, 0xaf, 0x41, 0x66, 0x1a, 0x9f, 0xc0, 0x5c, 0xfb, 0x79, 0x44, + 0x12, 0xa6, 0xa0, 0xea, 0xe6, 0xbb, 0xca, 0x85, 0x78, 0x38, 0x38, 0x0e, 0x7c, 0x17, 0x9b, 0x0e, + 0xa3, 0xb0, 0xb9, 0x27, 0xde, 0x59, 0x3b, 0x09, 0x71, 0x52, 0xc2, 0x04, 0x84, 0xda, 0x2a, 0xda, + 0x12, 0x82, 0x65, 0x6b, 0x91, 0xf0, 0x98, 0x24, 0x3c, 0x3d, 0xa8, 0xb0, 0x05, 0x5b, 0x86, 0xac, + 0x3f, 0x35, 0x58, 0x66, 0x41, 0x72, 0x70, 0x6f, 0x10, 0x04, 0x97, 0xa4, 0xe9, 0x06, 0x94, 0x18, + 0x8d, 0xbc, 0xc9, 0xb8, 0x65, 0x6c, 0x80, 0xb1, 0xe5, 0x85, 0x7e, 0xe4, 0xd3, 0x34, 0x71, 0xd2, + 0x38, 0x39, 0x20, 0x43, 0x12, 0x88, 0x5e, 0x9b, 0xf2, 0x0b, 0x4a, 0xff, 0x71, 0xec, 0x47, 0x8c, + 0x79, 0x91, 0x31, 0xcf, 0x6d, 0xfc, 0x2d, 0x97, 0x2d, 0xcf, 0x52, 0x6e, 0xcb, 0x09, 0x2c, 0xa9, + 0x09, 0xb4, 0xa0, 0xb6, 0x97, 0xf8, 0x24, 0xf2, 0x6c, 0x12, 0x3a, 0xc9, 0x29, 0xcb, 0x47, 0xc5, + 0x56, 0x30, 0xeb, 0x07, 0x0d, 0xca, 0x59, 0x16, 0xa5, 0x50, 0x34, 0x25, 0x14, 0x03, 0x8a, 0x92, + 0x08, 0xd8, 0x1a, 0xb1, 0xa6, 0x9b, 0xd7, 0x9d, 0xad, 0x71, 0xff, 0x3e, 0x6b, 0x13, 0x71, 0x69, + 0x08, 0x8b, 0x4d, 0x79, 0xf1, 0xb1, 0x1f, 0x64, 0xe4, 0x85, 0x85, 0xfd, 0xb0, 0xed, 0x27, 0xe9, + 0x89, 0x20, 0xce, 0x0d, 0x44, 0x77, 0x43, 0xc7, 0x0f, 0x04, 0x5f, 0x6e, 0x58, 0x43, 0x58, 0x54, + 0x6b, 0xfe, 0x4a, 0xb6, 0x22, 0x59, 0xd1, 0x88, 0x71, 0x6e, 0xcb, 0xc9, 0xd2, 0xd5, 0x64, 0xbd, + 0x82, 0xbb, 0xd5, 0x80, 0xf2, 0x91, 0xdf, 0xa7, 0x3b, 0x71, 0x18, 0xa2, 0x4f, 0x83, 0xa4, 0x48, + 0x4d, 0x63, 0xd7, 0x96, 0xb0, 0x50, 0x56, 0x0d, 0xd2, 0x75, 0x06, 0x41, 0x8a, 0xae, 0xd9, 0x4d, + 0x2e, 0x41, 0xd6, 0xb7, 0x1a, 0x5c, 0xe3, 0x8a, 0xda, 0x8d, 0x52, 0x92, 0x20, 0x66, 0x7c, 0x04, + 0x73, 0x4c, 0x43, 0xec, 0xb0, 0xf1, 0x91, 0x2d, 0x6f, 0x50, 0x9b, 0x3b, 0x19, 0x77, 0xa1, 0xc4, + 0x0f, 0x60, 0xc7, 0x57, 0x37, 0xeb, 0x93, 0xee, 0xaa, 0x64, 0x6d, 0xe1, 0x8f, 0xb7, 0x42, 0xbb, + 0x4f, 0x12, 0xd6, 0x92, 0xf9, 0x53, 0x52, 0xb4, 0x55, 0x50, 0x62, 0x78, 0x40, 0x9c, 0x21, 0xf9, + 0x0f, 0x32, 0xfc, 0x5d, 0x83, 0xeb, 0x7c, 0x43, 0x33, 0x1a, 0xfa, 0x29, 0xf1, 0x66, 0xe3, 0xd8, + 0x66, 0x43, 0xfe, 0xd5, 0x39, 0x72, 0x7f, 0x29, 0x3a, 0xfd, 0x4d, 0xa3, 0x2b, 0x4e, 0x8b, 0xee, + 0x37, 0x0d, 0x96, 0xf8, 0x86, 0xcf, 0x7d, 0xf7, 0xf4, 0x7f, 0x16, 0xdc, 0x4f, 0x1a, 0xac, 0x4a, + 0xa7, 0xec, 0x9c, 0x38, 0x51, 0x8f, 0xb0, 0x26, 0xc6, 0x1b, 0x9b, 0x59, 0x6c, 0x9a, 0xd0, 0xf8, + 0x94, 0x39, 0x42, 0xde, 0x4a, 0x4c, 0x6b, 0x50, 0x6e, 0x0d, 0xc4, 0x1b, 0x22, 0x6e, 0xe2, 0xcc, + 0xb6, 0xbe, 0xd2, 0x60, 0x35, 0x13, 0x61, 0x37, 0xe6, 0x44, 0x67, 0xa9, 0xd5, 0x23, 0x58, 0x90, + 0x73, 0xe1, 0x89, 0xf0, 0xac, 0x57, 0x91, 0x1c, 0xa5, 0xcc, 0x56, 0x37, 0x5a, 0x7f, 0x68, 0xb0, + 0xc4, 0x1c, 0xf9, 0x3b, 0x37, 0x0b, 0x99, 0xfb, 0x30, 0xcf, 0x36, 0xc7, 0x57, 0xcf, 0x72, 0xb6, + 0xc1, 0x78, 0x08, 0x20, 0xae, 0x0d, 0x9c, 0xc8, 0xf9, 0x9f, 0xe9, 0x97, 0x6f, 0x97, 0xf6, 0x5c, + 0x51, 0x42, 0xdf, 0x69, 0xb0, 0x92, 0x13, 0x97, 0xf3, 0x8e, 0x63, 0xb4, 0x30, 0x47, 0x12, 0x92, + 0xa1, 0x51, 0x32, 0x0a, 0xaf, 0xd7, 0x45, 0xfa, 0xeb, 0x29, 0xce, 0x7a, 0xa9, 0xc1, 0x9a, 0x4d, + 0x5c, 0xe2, 0x0f, 0x09, 0xbe, 0xdc, 0x5b, 0xfd, 0x7e, 0x20, 0x26, 0xa1, 0x19, 0x6a, 0x72, 0x0f, + 0x2a, 0xe2, 0x80, 0x28, 0x15, 0xc4, 0x2f, 0x9c, 0x80, 0x46, 0xde, 0xfc, 0x6f, 0x27, 0x87, 0xe6, + 0x8f, 0xb3, 0xb0, 0xac, 0x1f, 0x35, 0x30, 0x25, 0x52, 0x87, 0x49, 0xec, 0x12, 0x4a, 0xff, 0xe5, + 0xab, 0x86, 0x91, 0xa3, 0x83, 0x20, 0x15, 0xa3, 0x90, 0xb0, 0x24, 0xd2, 0x45, 0x85, 0xf4, 0xf7, + 0x1a, 0x00, 0x9f, 0x58, 0xd8, 0x7d, 0x51, 0x87, 0x2a, 0x1b, 0xf5, 0x94, 0x97, 0x5f, 0x86, 0xf8, + 0x41, 0x6c, 0xde, 0xc9, 0xff, 0x6d, 0x81, 0xd6, 0xd8, 0x6c, 0xa8, 0x4f, 0xcc, 0x86, 0x0f, 0x60, + 0x91, 0x7f, 0x27, 0x4b, 0x29, 0x23, 0x52, 0xdd, 0x5c, 0x9d, 0xf8, 0x43, 0x9c, 0xc5, 0x33, 0xe6, + 0x6c, 0x9d, 0xc2, 0x75, 0x8e, 0x48, 0x19, 0xc6, 0x71, 0x63, 0xcb, 0xf3, 0x24, 0x51, 0x67, 0x26, + 0x0e, 0xd7, 0x5b, 0x9e, 0xd7, 0x89, 0x07, 0x89, 0x9b, 0x4d, 0x45, 0x23, 0x00, 0xb9, 0x6e, 0x79, + 0xde, 0x17, 0x71, 0xe2, 0xf9, 0x51, 0x4f, 0x4c, 0x47, 0x12, 0x62, 0xfd, 0xaa, 0xc1, 0xad, 0x89, + 0xaf, 0x61, 0x33, 0x6d, 0x79, 0x9e, 0xa8, 0xe7, 0x9d, 0xbc, 0x42, 0xda, 0xe5, 0xe2, 0xc9, 0x8a, + 0xf3, 0x10, 0xaa, 0xd2, 0x81, 0xa2, 0xb6, 0xb7, 0x94, 0x9d, 0x13, 0x9f, 0xb5, 0xe5, 0x2d, 0xc6, + 0xa7, 0x50, 0x6e, 0xf7, 0x89, 0x27, 0xf5, 0xcf, 0x85, 0x1f, 0xce, 0x9d, 0xf1, 0x62, 0x7d, 0x7f, + 0x7a, 0x48, 0xae, 0x4b, 0xfa, 0xe9, 0xec, 0x31, 0xc9, 0x8c, 0x0a, 0xff, 0x08, 0x23, 0x9b, 0x7c, + 0x49, 0xdc, 0xb7, 0xc1, 0x68, 0x0f, 0x96, 0x39, 0x21, 0xb5, 0xd4, 0x1f, 0x43, 0x89, 0xc3, 0x82, + 0xc4, 0xcd, 0x29, 0x05, 0xe3, 0x04, 0xf8, 0xda, 0x7a, 0x04, 0xab, 0xa3, 0x73, 0x1a, 0x24, 0x20, + 0xe9, 0xac, 0x27, 0xed, 0xc0, 0xd2, 0x76, 0xe0, 0xb8, 0xa7, 0x82, 0xd0, 0x6c, 0x87, 0xec, 0xc3, + 0x4a, 0x7e, 0xc8, 0x1b, 0xb1, 0xc9, 0xe3, 0x1a, 0x7f, 0x23, 0x5e, 0xfb, 0xa4, 0x43, 0x58, 0xee, + 0x90, 0xa0, 0x8b, 0xd8, 0xd3, 0xbe, 0x97, 0x3f, 0xab, 0xf7, 0xa0, 0x86, 0x70, 0x7e, 0x43, 0x68, + 0x17, 0xdd, 0x10, 0x8a, 0xeb, 0x71, 0x89, 0xfd, 0xcb, 0xfc, 0xce, 0xdf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xca, 0x9b, 0xa2, 0xe6, 0x3e, 0x17, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 819e036fd..8d6713f75 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -96,66 +96,187 @@ message OfflinePushInfo{ string Title = 1; string Desc = 2; string Ext = 3; - string PushSound = 4; - bool ISBadgeCount = 5; + string iOSPushSound = 4; + bool iOSBadgeCount = 5; } - +//public message GroupInfo{ - string GroupID = 1; - string GroupName = 2; - string Notification = 3; - string Introduction = 4; - string FaceUrl = 5; - string OwnerID = 6; - int64 CreateTime = 7; - uint32 MemberCount = 8; + string GroupID = 1; + string GroupName = 2; + string Notification = 3; + string Introduction = 4; + string FaceUrl = 5; + PublicUserInfo Owner = 6; + uint64 CreateTime = 7; + uint32 MemberCount = 8; } -message GroupMemberFullInfo{ +//private, Group members have permission to view +message GroupMemberFullInfo { string GroupID = 1 ; string UserID = 2 ; - int32 Role = 3; - int64 JoinTime = 4; + int32 AdministratorLevel = 3; + uint64 JoinTime = 4; string NickName = 5; - string FaceUrl =6; -} - -message FriendInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; - string Remark = 8; + string FaceUrl = 6; + string FriendRemark = 7; } +//private, Friends have permission to view message UserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + string Mobile = 5; + string Birth = 6; + string Email = 7; } -message UserPublicInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; +//No permissions required +message PublicUserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; } -message CreateGroupTip{ - GroupInfo group = 1; - UserInfo creator = 2; - repeated GroupMemberFullInfo memberList = 3; +message TipsComm{ + bytes Detail = 1; + string DefaultTips = 2; +} + +//////////////////////group///////////////////// +//Actively join the group +message MemberEnterTips{ + GroupInfo Group = 1; + GroupMemberFullInfo EntrantUser = 2; + uint64 OperationTime = 3; } +//Actively leave the group +message MemberLeaveTips{ + GroupInfo Group = 1; + GroupMemberFullInfo LeaverUser = 2; + uint64 OperationTime = 3; +} + +message MemberInvitedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo InvitedUser = 3; + uint64 OperationTime = 4; +} + +message MemberKickedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo KickedUser = 3; + uint64 OperationTime = 4; +} +message MemberInfoChangedTips{ + int32 ChangeType = 1; //1:info changed; 2:mute + GroupMemberFullInfo OpUser = 2; //who do this + GroupMemberFullInfo FinalInfo = 3; // + uint64 MuteTime = 4; + GroupInfo Group = 5; +} + +message GroupCreatedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Creator = 2; + repeated GroupMemberFullInfo MemberList = 3; + uint64 OperationTime = 4; +} + +message GroupInfoChangedTips{ + int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + GroupInfo Group = 2; + GroupMemberFullInfo OpUser = 3; +} + +message ReceiveJoinApplicationTips{ + GroupInfo Group = 1; + PublicUserInfo Applicant = 2; + string Reason = 3; +} + +message ApplicationProcessedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + int32 Result = 3; + string Reason = 4; +} + +//////////////////////friend///////////////////// +message FriendInfo{ + UserInfo OwnerUser = 1; + string Remark = 2; + uint64 CreateTime = 3; + UserInfo FriendUser = 4; +} + +message FriendApplication{ + uint64 AddTime = 1; + string AddSource = 2; + string AddWording = 3; +} + +//user1 add user2 +message FriendApplicationAddedTips{ + PublicUserInfo OpUser = 1; //user1 + FriendApplication Application = 2; + PublicUserInfo OpedUser = 3; //user2 + uint64 OperationTime = 4; +} + +// user2 accept or reject +message FriendApplicationProcessedTips{ + PublicUserInfo OpUser = 1; //user2 + PublicUserInfo OpedUser = 2; //user1 + int32 result = 3; //1: accept; -1: reject + uint64 OperationTime = 4; +} + +message FriendAddedTips{ + FriendInfo Friend = 1; + uint64 OperationTime = 2; +} + +message FriendDeletedTips{ + FriendInfo Friend = 1; + uint64 OperationTime = 2; +} + +message BlackInfo{ + PublicUserInfo OwnerUser = 1; + uint64 CreateTime = 3; + PublicUserInfo BlackUser = 4; +} + +message BlackAddedTips{ + BlackInfo Black = 1; + uint64 OperationTime = 2; +} + +message BlackDeletedTips{ + BlackInfo Black = 1; + uint64 OperationTime = 2; +} + +message FriendInfoChangedTips{ + FriendInfo Friend = 1; + PublicUserInfo OpUser = 2; + uint64 OperationTime = 3; +} +//////////////////////user///////////////////// +message SelfInfoUpdatedTips{ + UserInfo SelfUserInfo = 1; + PublicUserInfo OpUser = 2; + uint64 OperationTime = 3; +} diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 5ee2a6503..9eec1ab94 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -54,6 +54,11 @@ func StructToJsonString(param interface{}) string { return dataString } +func StructToJsonBytes(param interface{}) []byte { + dataType, _ := json.Marshal(param) + return dataType +} + //The incoming parameter must be a pointer func JsonStringToStruct(s string, args interface{}) error { err := json.Unmarshal([]byte(s), args)