mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-24 02:16:16 +08:00
Merge remote-tracking branch 'origin/tuoyun' into tuoyun
This commit is contained in:
commit
0abb4a82b1
@ -286,13 +286,12 @@ func GetGroupMembers(c *gin.Context) {
|
|||||||
MemberPosition: int(groupMembers.RoleLevel),
|
MemberPosition: int(groupMembers.RoleLevel),
|
||||||
MemberNickName: groupMembers.Nickname,
|
MemberNickName: groupMembers.Nickname,
|
||||||
MemberId: groupMembers.UserID,
|
MemberId: groupMembers.UserID,
|
||||||
JoinTime: utils.UnixSecondToTime(groupMembers.JoinTime).String(),
|
JoinTime: utils.UnixSecondToTime(int64(groupMembers.JoinTime)).String(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
openIMHttp.RespHttp200(c, constant.OK, resp)
|
openIMHttp.RespHttp200(c, constant.OK, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func AddGroupMembers(c *gin.Context) {
|
func AddGroupMembers(c *gin.Context) {
|
||||||
var (
|
var (
|
||||||
req cms_api_struct.RemoveGroupMembersRequest
|
req cms_api_struct.RemoveGroupMembersRequest
|
||||||
@ -300,7 +299,7 @@ func AddGroupMembers(c *gin.Context) {
|
|||||||
reqPb pbGroup.AddGroupMembersCMSReq
|
reqPb pbGroup.AddGroupMembersCMSReq
|
||||||
)
|
)
|
||||||
if err := c.BindJSON(&req); err != nil {
|
if err := c.BindJSON(&req); err != nil {
|
||||||
log.NewError(reqPb.OperationId, utils.GetSelfFuncName(),"BindJSON failed ", err.Error())
|
log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "BindJSON failed ", err.Error())
|
||||||
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -326,7 +325,7 @@ func RemoveGroupMembers(c *gin.Context) {
|
|||||||
reqPb pbGroup.RemoveGroupMembersCMSReq
|
reqPb pbGroup.RemoveGroupMembersCMSReq
|
||||||
)
|
)
|
||||||
if err := c.BindJSON(&req); err != nil {
|
if err := c.BindJSON(&req); err != nil {
|
||||||
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error())
|
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error())
|
||||||
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -352,7 +351,7 @@ func DeleteGroup(c *gin.Context) {
|
|||||||
reqPb pbGroup.DeleteGroupReq
|
reqPb pbGroup.DeleteGroupReq
|
||||||
)
|
)
|
||||||
if err := c.BindJSON(&req); err != nil {
|
if err := c.BindJSON(&req); err != nil {
|
||||||
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error())
|
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error())
|
||||||
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -375,7 +374,7 @@ func SetGroupMaster(c *gin.Context) {
|
|||||||
reqPb pbGroup.OperateUserRoleReq
|
reqPb pbGroup.OperateUserRoleReq
|
||||||
)
|
)
|
||||||
if err := c.BindJSON(&req); err != nil {
|
if err := c.BindJSON(&req); err != nil {
|
||||||
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error())
|
log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error())
|
||||||
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
openIMHttp.RespHttp200(c, constant.ErrArgs, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,8 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) {
|
|||||||
ws.getSeqReq(conn, &m)
|
ws.getSeqReq(conn, &m)
|
||||||
case constant.WSSendMsg:
|
case constant.WSSendMsg:
|
||||||
ws.sendMsgReq(conn, &m)
|
ws.sendMsgReq(conn, &m)
|
||||||
|
case constant.WSSendSignalMsg:
|
||||||
|
ws.sendSignalMsgReq(conn, &m)
|
||||||
case constant.WSPullMsgBySeqList:
|
case constant.WSPullMsgBySeqList:
|
||||||
ws.pullMsgBySeqListReq(conn, &m)
|
ws.pullMsgBySeqListReq(conn, &m)
|
||||||
default:
|
default:
|
||||||
@ -193,6 +195,57 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) {
|
|||||||
ws.sendMsg(conn, mReply)
|
ws.sendMsg(conn, mReply)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) {
|
||||||
|
sendMsgCount++
|
||||||
|
log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID)
|
||||||
|
nReply := new(pbChat.SendMsgResp)
|
||||||
|
isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg)
|
||||||
|
if isPass {
|
||||||
|
data := pData.(sdk_ws.MsgData)
|
||||||
|
pbData := pbChat.SendMsgReq{
|
||||||
|
Token: m.Token,
|
||||||
|
OperationID: m.OperationID,
|
||||||
|
MsgData: &data,
|
||||||
|
}
|
||||||
|
log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data)
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName)
|
||||||
|
client := pbChat.NewChatClient(etcdConn)
|
||||||
|
reply, err := client.SendMsg(context.Background(), &pbData)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(pbData.OperationID, "rpc sendMsg err", err.Error())
|
||||||
|
nReply.ErrCode = 200
|
||||||
|
nReply.ErrMsg = err.Error()
|
||||||
|
ws.sendSignalMsgResp(conn, m, nReply)
|
||||||
|
} else {
|
||||||
|
log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String())
|
||||||
|
ws.sendSignalMsgResp(conn, m, reply)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
nReply.ErrCode = errCode
|
||||||
|
nReply.ErrMsg = errMsg
|
||||||
|
ws.sendSignalMsgResp(conn, m, nReply)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
func (ws *WServer) sendSignalMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) {
|
||||||
|
// := make(map[string]interface{})
|
||||||
|
|
||||||
|
var mReplyData sdk_ws.UserSendMsgResp
|
||||||
|
mReplyData.ClientMsgID = pb.GetClientMsgID()
|
||||||
|
mReplyData.ServerMsgID = pb.GetServerMsgID()
|
||||||
|
mReplyData.SendTime = pb.GetSendTime()
|
||||||
|
b, _ := proto.Marshal(&mReplyData)
|
||||||
|
mReply := Resp{
|
||||||
|
ReqIdentifier: m.ReqIdentifier,
|
||||||
|
MsgIncr: m.MsgIncr,
|
||||||
|
ErrCode: pb.GetErrCode(),
|
||||||
|
ErrMsg: pb.GetErrMsg(),
|
||||||
|
OperationID: m.OperationID,
|
||||||
|
Data: b,
|
||||||
|
}
|
||||||
|
ws.sendMsg(conn, mReply)
|
||||||
|
}
|
||||||
func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) {
|
func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) {
|
||||||
var b bytes.Buffer
|
var b bytes.Buffer
|
||||||
enc := gob.NewEncoder(&b)
|
enc := gob.NewEncoder(&b)
|
||||||
|
@ -58,7 +58,7 @@ type SeqListData struct {
|
|||||||
|
|
||||||
func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) {
|
func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) {
|
||||||
switch r {
|
switch r {
|
||||||
case constant.WSSendMsg:
|
case constant.WSSendMsg | constant.WSSendSignalMsg:
|
||||||
data := open_im_sdk.MsgData{}
|
data := open_im_sdk.MsgData{}
|
||||||
if err := proto.Unmarshal(m.Data, &data); err != nil {
|
if err := proto.Unmarshal(m.Data, &data); err != nil {
|
||||||
log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r)
|
log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r)
|
||||||
|
@ -395,7 +395,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG
|
|||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
utils.CopyStructFields(&memberNode, memberInfo)
|
utils.CopyStructFields(&memberNode, memberInfo)
|
||||||
memberNode.JoinTime = memberInfo.JoinTime.Unix()
|
memberNode.JoinTime = int32(memberInfo.JoinTime.Unix())
|
||||||
resp.MemberList = append(resp.MemberList, &memberNode)
|
resp.MemberList = append(resp.MemberList, &memberNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -827,7 +827,7 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou
|
|||||||
GroupID: req.GroupId,
|
GroupID: req.GroupId,
|
||||||
UserID: groupMember.UserID,
|
UserID: groupMember.UserID,
|
||||||
RoleLevel: groupMember.RoleLevel,
|
RoleLevel: groupMember.RoleLevel,
|
||||||
JoinTime: groupMember.JoinTime.Unix(),
|
JoinTime: int32(groupMember.JoinTime.Unix()),
|
||||||
Nickname: groupMember.Nickname,
|
Nickname: groupMember.Nickname,
|
||||||
FaceURL: groupMember.FaceURL,
|
FaceURL: groupMember.FaceURL,
|
||||||
JoinSource: groupMember.JoinSource,
|
JoinSource: groupMember.JoinSource,
|
||||||
|
@ -20,8 +20,10 @@ const (
|
|||||||
WSGetNewestSeq = 1001
|
WSGetNewestSeq = 1001
|
||||||
WSPullMsgBySeqList = 1002
|
WSPullMsgBySeqList = 1002
|
||||||
WSSendMsg = 1003
|
WSSendMsg = 1003
|
||||||
|
WSSendSignalMsg = 1004
|
||||||
WSPushMsg = 2001
|
WSPushMsg = 2001
|
||||||
WSKickOnlineMsg = 2002
|
WSKickOnlineMsg = 2002
|
||||||
|
WsLogoutMsg = 2003
|
||||||
WSDataError = 3001
|
WSDataError = 3001
|
||||||
|
|
||||||
///ContentType
|
///ContentType
|
||||||
|
@ -117,7 +117,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group
|
|||||||
|
|
||||||
dst.AppMangerLevel = 1
|
dst.AppMangerLevel = 1
|
||||||
}
|
}
|
||||||
dst.JoinTime = src.JoinTime.Unix()
|
dst.JoinTime = int32(src.JoinTime.Unix())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user