mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-06-03 22:39:28 +08:00
Merge branch 'v2.3.0release' of github.com:OpenIMSDK/Open-IM-Server into v2.3.0release
This commit is contained in:
commit
79999edcea
2
go.mod
2
go.mod
@ -24,7 +24,7 @@ require (
|
||||
github.com/go-playground/validator/v10 v10.11.0
|
||||
github.com/go-redis/redis/v8 v8.11.5
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
github.com/golang-jwt/jwt/v4 v4.1.0
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
|
||||
|
4
go.sum
4
go.sum
@ -249,8 +249,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0=
|
||||
github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
|
@ -80,7 +80,7 @@ func SendMsg(c *gin.Context) {
|
||||
}
|
||||
client := pbChat.NewMsgClient(etcdConn)
|
||||
|
||||
log.Info("", "", "api SendMsg call, api call rpc...")
|
||||
log.Info(params.OperationID, "", "api SendMsg call, api call rpc...")
|
||||
|
||||
reply, err := client.SendMsg(context.Background(), pbData)
|
||||
if err != nil {
|
||||
|
@ -62,7 +62,7 @@ func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb.
|
||||
|
||||
func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.MsgData) cbApi.CommonCallbackResp {
|
||||
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
|
||||
if !config.Config.Callback.CallbackOnlinePush.Enable {
|
||||
if !config.Config.Callback.CallbackOnlinePush.Enable || utils.IsContain(msg.SendID, userIDList) {
|
||||
return callbackResp
|
||||
}
|
||||
req := cbApi.CallbackBeforePushReq{
|
||||
@ -96,6 +96,11 @@ func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.M
|
||||
return callbackResp
|
||||
}
|
||||
}
|
||||
if resp.ErrCode == constant.CallbackHandleSuccess && resp.ActionCode == constant.ActionAllow {
|
||||
if resp.OfflinePushInfo != nil {
|
||||
msg.OfflinePushInfo = resp.OfflinePushInfo
|
||||
}
|
||||
}
|
||||
return callbackResp
|
||||
}
|
||||
|
||||
@ -133,8 +138,13 @@ func callbackBeforeSuperGroupOnlinePush(operationID string, groupID string, msg
|
||||
return callbackResp
|
||||
}
|
||||
}
|
||||
if resp.ErrCode == constant.CallbackHandleSuccess && resp.ActionCode == constant.ActionAllow && len(resp.UserIDList) != 0 {
|
||||
*pushToUserList = resp.UserIDList
|
||||
if resp.ErrCode == constant.CallbackHandleSuccess && resp.ActionCode == constant.ActionAllow {
|
||||
if len(resp.UserIDList) != 0 {
|
||||
*pushToUserList = resp.UserIDList
|
||||
}
|
||||
if resp.OfflinePushInfo != nil {
|
||||
msg.OfflinePushInfo = resp.OfflinePushInfo
|
||||
}
|
||||
}
|
||||
log.NewDebug(operationID, utils.GetSelfFuncName(), pushToUserList, resp.UserIDList)
|
||||
return callbackResp
|
||||
|
@ -56,6 +56,19 @@ func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbA
|
||||
return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil
|
||||
}
|
||||
|
||||
func (rpc *rpcAuth) ParseToken(_ context.Context, req *pbAuth.ParseTokenReq) (*pbAuth.ParseTokenResp, error) {
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String())
|
||||
claims, err := token_verify.ParseToken(req.Token, req.OperationID)
|
||||
if err != nil {
|
||||
errMsg := "ParseToken failed " + err.Error() + req.OperationID + " token " + req.Token
|
||||
log.Error(req.OperationID, errMsg, "token:", req.Token)
|
||||
return &pbAuth.ParseTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: 4001, ErrMsg: errMsg}}, nil
|
||||
}
|
||||
resp := pbAuth.ParseTokenResp{CommonResp: &pbAuth.CommonResp{}, UserID: claims.UID, Platform: claims.Platform, ExpireTimeSeconds: uint32(claims.ExpiresAt.Unix())}
|
||||
log.Info(req.OperationID, utils.GetSelfFuncName(), " rpc return ", resp.String())
|
||||
return &resp, nil
|
||||
}
|
||||
|
||||
func (rpc *rpcAuth) ForceLogout(_ context.Context, req *pbAuth.ForceLogoutReq) (*pbAuth.ForceLogoutResp, error) {
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String())
|
||||
if !token_verify.IsManagerUserID(req.OpUserID) {
|
||||
|
@ -1 +0,0 @@
|
||||
package auth
|
@ -933,6 +933,7 @@ func Notification(n *NotificationMsg) {
|
||||
log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), reply.ErrCode, reply.ErrMsg)
|
||||
}
|
||||
}
|
||||
|
||||
func getOnlineAndOfflineUserIDList(memberList []string, m map[string][]string, operationID string) {
|
||||
var onllUserIDList, offlUserIDList []string
|
||||
var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult
|
||||
|
@ -34,5 +34,6 @@ type CallbackBeforeSuperGroupOnlinePushReq struct {
|
||||
|
||||
type CallbackBeforeSuperGroupOnlinePushResp struct {
|
||||
*CommonCallbackResp
|
||||
UserIDList []string `json:"userIDList"`
|
||||
UserIDList []string `json:"userIDList"`
|
||||
OfflinePushInfo *commonPb.OfflinePushInfo `json:"offlinePushInfo"`
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ func init() {
|
||||
fmt.Println("send_id", "-send_time", "index create failed", err.Error())
|
||||
panic(err.Error())
|
||||
}
|
||||
if err := createMongoIndex(mongoClient, cChat, true, "uid"); err != nil {
|
||||
if err := createMongoIndex(mongoClient, cChat, false, "uid"); err != nil {
|
||||
fmt.Println("uid", " index create failed", err.Error())
|
||||
panic(err.Error())
|
||||
}
|
||||
|
@ -179,19 +179,6 @@ func ParseTokenGetUserID(token string, operationID string) (error, string) {
|
||||
func ParseToken(tokensString, operationID string) (claims *Claims, err error) {
|
||||
claims, err = GetClaimFromToken(tokensString)
|
||||
if err != nil {
|
||||
//if errors.Is(err, constant.ErrTokenUnknown) {
|
||||
// errMsg := "GetClaimFromToken failed ErrTokenUnknown " + err.Error()
|
||||
// log.Error(operationID, errMsg)
|
||||
//}
|
||||
//info := err.(constant.ErrInfo)
|
||||
//log.Error(operationID, "detail info , ", info.ErrCode, info.ErrMsg)
|
||||
//
|
||||
//e := errors.Unwrap(err)
|
||||
//if errors.Is(e, constant.ErrTokenUnknown) {
|
||||
// errMsg := "ParseToken failed ErrTokenUnknown " + e.Error()
|
||||
// log.Error(operationID, errMsg)
|
||||
//}
|
||||
|
||||
return nil, utils.Wrap(err, "")
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./admin_cms;admin_cms";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/admin_cms;admin_cms";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
package admin_cms;
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
package pbAuth;
|
||||
option go_package = "./auth;pbAuth";
|
||||
option go_package = "Open_IM/pkg/proto/auth;pbAuth";
|
||||
|
||||
message CommonResp{
|
||||
int32 errCode = 1;
|
||||
@ -42,6 +42,18 @@ message ForceLogoutResp {
|
||||
CommonResp CommonResp = 1;
|
||||
}
|
||||
|
||||
message ParseTokenReq{
|
||||
string token = 1;
|
||||
string operationID = 2;
|
||||
}
|
||||
|
||||
|
||||
message ParseTokenResp{
|
||||
string userID = 1;
|
||||
string platform = 2;
|
||||
CommonResp commonResp = 3;
|
||||
uint32 expireTimeSeconds = 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -50,4 +62,7 @@ service Auth {
|
||||
rpc UserRegister(UserRegisterReq) returns(UserRegisterResp);
|
||||
rpc UserToken(UserTokenReq) returns(UserTokenResp);
|
||||
rpc ForceLogout(ForceLogoutReq) returns(ForceLogoutResp);
|
||||
rpc ParseToken(ParseTokenReq)returns(ParseTokenResp);
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,12 +6,25 @@ for ((i = 0; i < ${#all_proto[*]}; i++)); do
|
||||
proto=${all_proto[$i]}
|
||||
|
||||
protoc -I ../../../ -I ./ --go_out=plugins=grpc:. $proto
|
||||
s=`echo $proto | sed 's/ //g'`
|
||||
v=${s//proto/pb.go}
|
||||
protoc-go-inject-tag -input=./$v
|
||||
echo "protoc --go_out=plugins=grpc:." $proto
|
||||
done
|
||||
echo "proto file generate success..."
|
||||
echo "proto file generate success"
|
||||
|
||||
|
||||
j=0
|
||||
for file in $(find ./Open_IM -name "*.go"); do # Not recommended, will break on whitespace
|
||||
filelist[j]=$file
|
||||
j=`expr $j + 1`
|
||||
done
|
||||
|
||||
|
||||
for ((i = 0; i < ${#filelist[*]}; i++)); do
|
||||
proto=${filelist[$i]}
|
||||
cp $proto ${proto#*./Open_IM/pkg/proto/}
|
||||
done
|
||||
rm Open_IM -rf
|
||||
#find ./ -type f -path "*.pb.go"|xargs sed -i 's/\".\/sdk_ws\"/\"Open_IM\/pkg\/proto\/sdk_ws\"/g'
|
||||
|
||||
|
||||
|
||||
find ./ -type f -path "*.pb.go"|xargs sed -i 's/\".\/sdk_ws\"/\"Open_IM\/pkg\/proto\/sdk_ws\"/g'
|
||||
|
||||
|
3
pkg/proto/cache/cache.proto
vendored
3
pkg/proto/cache/cache.proto
vendored
@ -1,6 +1,5 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./cache;cache";
|
||||
option go_package = "Open_IM/pkg/proto/cache;cache";
|
||||
package cache;
|
||||
|
||||
message CommonResp{
|
||||
|
@ -1,5 +1,5 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./conversation;conversation";
|
||||
option go_package = "Open_IM/pkg/proto/conversation;conversation";
|
||||
package conversation;
|
||||
|
||||
message CommonResp{
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./friend;friend";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/friend;friend";
|
||||
package friend;
|
||||
|
||||
message CommonResp{
|
||||
@ -167,6 +167,6 @@ service friend{
|
||||
rpc setFriendRemark(SetFriendRemarkReq) returns(SetFriendRemarkResp);
|
||||
rpc importFriend(ImportFriendReq) returns(ImportFriendResp);
|
||||
|
||||
rpc CheckFriendFromCache(IsFriendReq) returns(IsFriendResp);
|
||||
rpc CheckBlockFromCache(IsInBlackListReq) returns(IsFriendResp);
|
||||
// rpc CheckFriendFromCache(IsFriendReq) returns(IsFriendResp);
|
||||
// rpc CheckBlockFromCache(IsInBlackListReq) returns(IsFriendResp);
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
import "Open_IM/pkg/proto/sdk_ws/wrappers.proto";
|
||||
option go_package = "./group;group";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/wrappers.proto";
|
||||
option go_package = "Open_IM/pkg/proto/group;group";
|
||||
package group;
|
||||
|
||||
message CommonResp{
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./msg;msg";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/msg;msg";
|
||||
package msg;
|
||||
|
||||
message MsgDataToMQ{
|
||||
@ -131,6 +131,9 @@ message DelSuperGroupMsgResp{
|
||||
int32 errCode = 1;
|
||||
string errMsg = 2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
service msg {
|
||||
rpc GetMaxAndMinSeq(server_api_params.GetMaxAndMinSeqReq) returns(server_api_params.GetMaxAndMinSeqResp);
|
||||
rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp);
|
||||
@ -141,4 +144,5 @@ service msg {
|
||||
rpc SetMsgMinSeq(SetMsgMinSeqReq) returns(SetMsgMinSeqResp);
|
||||
rpc SetSendMsgStatus(SetSendMsgStatusReq) returns(SetSendMsgStatusResp);
|
||||
rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp);
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./office;office";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/office;office";
|
||||
package office;
|
||||
|
||||
message CommonResp{
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./organization;organization";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/organization;organization";
|
||||
package organization;
|
||||
|
||||
|
||||
|
@ -8,9 +8,12 @@ all_proto=(
|
||||
group/group.proto
|
||||
user/user.proto
|
||||
rtc/rtc.proto
|
||||
chat/chat.proto
|
||||
msg/msg.proto
|
||||
push/push.proto
|
||||
relay/relay.proto
|
||||
sdk_ws/ws.proto
|
||||
conversation/conversation.proto
|
||||
office/office.proto
|
||||
cache/cache.proto
|
||||
organization/organization.proto
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./push;pbPush";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/push;pbPush";
|
||||
package push;
|
||||
|
||||
message PushMsgReq {
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "./relay;pbRelay";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
option go_package = "Open_IM/pkg/proto/relay;pbRelay";
|
||||
package relay;
|
||||
|
||||
message OnlinePushMsgReq {
|
||||
|
@ -1,5 +1,5 @@
|
||||
syntax = "proto3";
|
||||
option go_package = "./rtc;rtc";
|
||||
option go_package = "Open_IM/pkg/proto/rtc;rtc";
|
||||
package proto;
|
||||
|
||||
message CommonResp{
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/wrappers.proto";
|
||||
option go_package = "./sdk_ws;server_api_params";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/wrappers.proto";
|
||||
option go_package = "Open_IM/pkg/proto/sdk_ws;server_api_params";
|
||||
package server_api_params;
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
syntax = "proto3";
|
||||
import "Open_IM/pkg/proto/sdk_ws/ws.proto";
|
||||
import "Open_IM/pkg/proto/conversation/conversation.proto";
|
||||
option go_package = "./user;user";
|
||||
import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
|
||||
import "Open-IM-Server/pkg/proto/conversation/conversation.proto";
|
||||
option go_package = "Open_IM/pkg/proto/user;user";
|
||||
package user;
|
||||
|
||||
message CommonResp{
|
||||
|
Loading…
x
Reference in New Issue
Block a user