From f82b15e12b95e9a5c3de50eddab1697f336d226d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:01:41 +0800 Subject: [PATCH 01/12] group --- internal/api/group.go | 2 ++ internal/api/route.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/api/group.go b/internal/api/group.go index bd517d050..ffff8a16e 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -5,6 +5,7 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" @@ -26,6 +27,7 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { if err != nil { return nil, err } + log.ZDebug(ctx, "get conn success", "conn", conn, "config", config.Config.RpcRegisterName.OpenImGroupName) return group.NewGroupClient(conn), nil } diff --git a/internal/api/route.go b/internal/api/route.go index f38cf2146..83cb4b010 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -68,8 +68,8 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal friendRouterGroup.POST("/is_friend", f.IsFriend) //1 } groupRouterGroup := r.Group("/group") - g := NewGroup(zk) { + g := NewGroup(zk) groupRouterGroup.Use(mw.GinParseToken(rdb)) groupRouterGroup.POST("/create_group", g.NewCreateGroup) //1 groupRouterGroup.POST("/set_group_info", g.NewSetGroupInfo) //1 From 1ef3f527f39278f22a6961ae76acaaa0e8b8465f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:04:02 +0800 Subject: [PATCH 02/12] group --- internal/api/route.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/api/route.go b/internal/api/route.go index 83cb4b010..1049dd93d 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -67,9 +67,10 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal friendRouterGroup.POST("/import_friend", f.ImportFriends) //1 friendRouterGroup.POST("/is_friend", f.IsFriend) //1 } + g := NewGroup(zk) groupRouterGroup := r.Group("/group") { - g := NewGroup(zk) + groupRouterGroup.Use(mw.GinParseToken(rdb)) groupRouterGroup.POST("/create_group", g.NewCreateGroup) //1 groupRouterGroup.POST("/set_group_info", g.NewSetGroupInfo) //1 From 17e747049c4c0b5a977e0a8d58759470eba59071 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:23:28 +0800 Subject: [PATCH 03/12] group --- internal/api/group.go | 2 ++ pkg/common/db/relation/friend_request_model.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/api/group.go b/internal/api/group.go index ffff8a16e..81e3fcddf 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -2,6 +2,7 @@ package api import ( "context" + "fmt" "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" @@ -28,6 +29,7 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { return nil, err } log.ZDebug(ctx, "get conn success", "conn", conn, "config", config.Config.RpcRegisterName.OpenImGroupName) + fmt.Println("conn", conn) return group.NewGroupClient(conn), nil } diff --git a/pkg/common/db/relation/friend_request_model.go b/pkg/common/db/relation/friend_request_model.go index 9cb30ecbf..91d6e0cca 100644 --- a/pkg/common/db/relation/friend_request_model.go +++ b/pkg/common/db/relation/friend_request_model.go @@ -59,7 +59,7 @@ func (f *FriendRequestGorm) FindToUserID(ctx context.Context, toUserID string, p if err != nil { return nil, 0, utils.Wrap(err, "") } - err = utils.Wrap(f.db(ctx).Where("to_user_id = ? ", toUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber-1)).Find(&friendRequests).Error, "") + err = utils.Wrap(f.db(ctx).Where("to_user_id = ? ", toUserID).Limit(int(showNumber)).Offset(int(pageNumber-1)*int(showNumber)).Find(&friendRequests).Error, "") return } From 9ea3e4c758cad51884c912ea82b608d54991ad2e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:34:20 +0800 Subject: [PATCH 04/12] test group --- internal/api/group.go | 4 ---- internal/rpc/group/group.go | 20 ++++++++++---------- pkg/common/cmd/rpc.go | 5 +++++ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/internal/api/group.go b/internal/api/group.go index 81e3fcddf..bd517d050 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -2,11 +2,9 @@ package api import ( "context" - "fmt" "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" - "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" @@ -28,8 +26,6 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { if err != nil { return nil, err } - log.ZDebug(ctx, "get conn success", "conn", conn, "config", config.Config.RpcRegisterName.OpenImGroupName) - fmt.Println("conn", conn) return group.NewGroupClient(conn), nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b5fdceee6..7d3918792 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -48,19 +48,19 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e if err != nil { return err } - user := rpcclient.NewUserClient(client) + // user := rpcclient.NewUserClient(client) database := controller.InitGroupDatabase(db, rdb, mongo.GetDatabase()) pbGroup.RegisterGroupServer(server, &groupServer{ GroupDatabase: database, - User: user, - Notification: notification.NewGroupNotificationSender(database, client, func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error) { - users, err := user.GetUsersInfo(ctx, userIDs) - if err != nil { - return nil, err - } - return utils.Slice(users, func(e *sdkws.UserInfo) rpcclient.CommonUser { return e }), nil - }), - conversationRpcClient: rpcclient.NewConversationClient(client), + // User: user, + // Notification: notification.NewGroupNotificationSender(database, client, func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error) { + // users, err := user.GetUsersInfo(ctx, userIDs) + // if err != nil { + // return nil, err + // } + // return utils.Slice(users, func(e *sdkws.UserInfo) rpcclient.CommonUser { return e }), nil + // }), + // conversationRpcClient: rpcclient.NewConversationClient(client), }) return nil } diff --git a/pkg/common/cmd/rpc.go b/pkg/common/cmd/rpc.go index 6c6e9b485..d24073940 100644 --- a/pkg/common/cmd/rpc.go +++ b/pkg/common/cmd/rpc.go @@ -1,6 +1,8 @@ package cmd import ( + "errors" + "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/startrpc" "github.com/spf13/cobra" @@ -25,5 +27,8 @@ func (a *RpcCmd) Exec() error { } func (a *RpcCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { + if a.GetPortFlag() == 0 { + return errors.New("port is required") + } return startrpc.Start(a.GetPortFlag(), name, a.GetPrometheusPortFlag(), rpcFn) } From b6f20d1772c9a75299ce16b0ed5b25661ae42e7b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:40:35 +0800 Subject: [PATCH 05/12] group --- internal/rpc/group/group.go | 20 +++++++++---------- .../db/relation/friend_request_model.go | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7d3918792..b5fdceee6 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -48,19 +48,19 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e if err != nil { return err } - // user := rpcclient.NewUserClient(client) + user := rpcclient.NewUserClient(client) database := controller.InitGroupDatabase(db, rdb, mongo.GetDatabase()) pbGroup.RegisterGroupServer(server, &groupServer{ GroupDatabase: database, - // User: user, - // Notification: notification.NewGroupNotificationSender(database, client, func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error) { - // users, err := user.GetUsersInfo(ctx, userIDs) - // if err != nil { - // return nil, err - // } - // return utils.Slice(users, func(e *sdkws.UserInfo) rpcclient.CommonUser { return e }), nil - // }), - // conversationRpcClient: rpcclient.NewConversationClient(client), + User: user, + Notification: notification.NewGroupNotificationSender(database, client, func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error) { + users, err := user.GetUsersInfo(ctx, userIDs) + if err != nil { + return nil, err + } + return utils.Slice(users, func(e *sdkws.UserInfo) rpcclient.CommonUser { return e }), nil + }), + conversationRpcClient: rpcclient.NewConversationClient(client), }) return nil } diff --git a/pkg/common/db/relation/friend_request_model.go b/pkg/common/db/relation/friend_request_model.go index 91d6e0cca..956f733a7 100644 --- a/pkg/common/db/relation/friend_request_model.go +++ b/pkg/common/db/relation/friend_request_model.go @@ -69,6 +69,6 @@ func (f *FriendRequestGorm) FindFromUserID(ctx context.Context, fromUserID strin if err != nil { return nil, 0, utils.Wrap(err, "") } - err = utils.Wrap(f.db(ctx).Where("from_user_id = ? ", fromUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber-1)).Find(&friendRequests).Error, "") + err = utils.Wrap(f.db(ctx).Where("from_user_id = ? ", fromUserID).Limit(int(showNumber)).Offset(int(pageNumber-1)*int(showNumber)).Find(&friendRequests).Error, "") return } From 1ab8e42dd8affc8d68520f0ec8b3e4fdbcbd8cb0 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 18:44:42 +0800 Subject: [PATCH 06/12] rpc --- cmd/api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/api/main.go b/cmd/api/main.go index f214bc23e..b50c9a5f8 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -41,7 +41,7 @@ func run(port int) error { var client discoveryregistry.SvcDiscoveryRegistry client, err = openKeeper.NewClient(config.Config.Zookeeper.ZkAddr, config.Config.Zookeeper.Schema, openKeeper.WithFreq(time.Hour), openKeeper.WithUserNameAndPassword(config.Config.Zookeeper.UserName, - config.Config.Zookeeper.Password), openKeeper.WithRoundRobin(), openKeeper.WithTimeout(10)) + config.Config.Zookeeper.Password), openKeeper.WithTimeout(10)) if err != nil { return err } From 22f4c3bf89bd4ddeda765b79a99be940c5673e29 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 19:36:41 +0800 Subject: [PATCH 07/12] WithRoundRobin --- cmd/api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/api/main.go b/cmd/api/main.go index b50c9a5f8..f214bc23e 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -41,7 +41,7 @@ func run(port int) error { var client discoveryregistry.SvcDiscoveryRegistry client, err = openKeeper.NewClient(config.Config.Zookeeper.ZkAddr, config.Config.Zookeeper.Schema, openKeeper.WithFreq(time.Hour), openKeeper.WithUserNameAndPassword(config.Config.Zookeeper.UserName, - config.Config.Zookeeper.Password), openKeeper.WithTimeout(10)) + config.Config.Zookeeper.Password), openKeeper.WithRoundRobin(), openKeeper.WithTimeout(10)) if err != nil { return err } From de2f3a8582cb0905901ac82a960e1fdcead2673e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 20:05:56 +0800 Subject: [PATCH 08/12] conn --- go.mod | 2 +- go.sum | 2 ++ internal/api/group.go | 2 ++ pkg/discoveryregistry/discovery_register.go | 3 +++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 1e8293056..81b27f38d 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( firebase.google.com/go v3.13.0+incompatible - github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004 + github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67 github.com/OpenIMSDK/open_utils v1.0.8 github.com/Shopify/sarama v1.32.0 github.com/antonfisher/nested-logrus-formatter v1.3.1 diff --git a/go.sum b/go.sum index 20ecd88bb..bde1b45fe 100644 --- a/go.sum +++ b/go.sum @@ -391,6 +391,8 @@ github.com/OpenIMSDK/openKeeper v0.0.6 h1:0eseL/h+evxZAM5Dqs85FEDbDFkTjpVwHBSINQ github.com/OpenIMSDK/openKeeper v0.0.6/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004 h1:+1t9eKPKV/NyQARgVUv6TgOWSf8uKu8rkS41+utSIMk= github.com/OpenIMSDK/openKeeper v0.9.9-0.20230426053850-80d254440004/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= +github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67 h1:I6QLciX4LlavBMNyeqkp90DJV+uKcwke7NZ9OKMIjV8= +github.com/OpenIMSDK/openKeeper v0.9.9-0.20230509114426-eb05252b1e67/go.mod h1:HwHgo+p3E+aAeiLOSyDwVB2zFJtu+QvnFNlfNjFG9vA= github.com/OpenIMSDK/open_utils v1.0.8 h1:IopxWgJwEF5ZAPsRuiZZOfcxNOQOCt/p8VDENcHN9r4= github.com/OpenIMSDK/open_utils v1.0.8/go.mod h1:FLoaQblWUVKQgqt2LrNzfSZLT6D3DICBn1kcOMDLUOI= github.com/Shopify/sarama v1.29.0 h1:ARid8o8oieau9XrHI55f/L3EoRAhm9px6sonbD7yuUE= diff --git a/internal/api/group.go b/internal/api/group.go index bd517d050..d5c9d1f30 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -5,6 +5,7 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" @@ -26,6 +27,7 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { if err != nil { return nil, err } + log.ZDebug(ctx, "get conn", o.c.GetClientLocalConns()) return group.NewGroupClient(conn), nil } diff --git a/pkg/discoveryregistry/discovery_register.go b/pkg/discoveryregistry/discovery_register.go index 31eae9ead..880e31e20 100644 --- a/pkg/discoveryregistry/discovery_register.go +++ b/pkg/discoveryregistry/discovery_register.go @@ -4,12 +4,15 @@ import ( "context" "google.golang.org/grpc" + "google.golang.org/grpc/resolver" ) type Conn interface { GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) GetConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) AddOption(opts ...grpc.DialOption) + // do not use this method for call rpc + GetClientLocalConns() map[string][]resolver.Address } type SvcDiscoveryRegistry interface { From dbb8c889ef8b75c85ded5eeed0e3f6979cb63053 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Tue, 9 May 2023 20:20:00 +0800 Subject: [PATCH 09/12] test --- cmd/api/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/api/main.go b/cmd/api/main.go index f214bc23e..0ff899bab 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -29,6 +29,7 @@ func main() { } } +// run func run(port int) error { if port == 0 { port = config.Config.Api.GinPort[0] From 5c50be3c504ecd1103d391fdcedb129357ac1825 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 May 2023 20:29:49 +0800 Subject: [PATCH 10/12] group --- internal/api/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/group.go b/internal/api/group.go index d5c9d1f30..fc87dbbc1 100644 --- a/internal/api/group.go +++ b/internal/api/group.go @@ -27,7 +27,7 @@ func (o *Group) client(ctx context.Context) (group.GroupClient, error) { if err != nil { return nil, err } - log.ZDebug(ctx, "get conn", o.c.GetClientLocalConns()) + log.ZDebug(ctx, "get conn", "local", o.c.GetClientLocalConns()) return group.NewGroupClient(conn), nil } From 68bc2c53b3a6ece28e51b15f26b4afb0c6be2522 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Tue, 9 May 2023 20:32:39 +0800 Subject: [PATCH 11/12] test --- cmd/api/main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmd/api/main.go b/cmd/api/main.go index 0ff899bab..f214bc23e 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -29,7 +29,6 @@ func main() { } } -// run func run(port int) error { if port == 0 { port = config.Config.Api.GinPort[0] From d0e650b1d80d8fbd8767bb8abbe82047551dd0b1 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Wed, 10 May 2023 10:23:55 +0800 Subject: [PATCH 12/12] msg --- internal/api/msg.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/api/msg.go b/internal/api/msg.go index 94ee47aa2..07f8e7756 100644 --- a/internal/api/msg.go +++ b/internal/api/msg.go @@ -10,7 +10,6 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext" - "github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/errs" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/msg" @@ -157,10 +156,11 @@ func (m *Message) SendMessage(c *gin.Context) { apiresp.GinError(c, errs.ErrArgs.WithDetail(err.Error()).Wrap()) return } - if !tokenverify.IsAppManagerUid(c) { - apiresp.GinError(c, errs.ErrNoPermission.Wrap("only app manager can send message")) - return - } + // todo + //if !tokenverify.IsAppManagerUid(c) { + // apiresp.GinError(c, errs.ErrNoPermission.Wrap("only app manager can send message")) + // return + //} var data interface{} switch params.ContentType {