Skip to content

Commit b805113

Browse files
authored
Merge pull request #3018 from withchao/cherry-pick-7563aff
fix: resolving v3.8.3 conflicts
2 parents d3b2587 + 2676295 commit b805113

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+69
-1342
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ require (
4242
github.com/spf13/viper v1.18.2
4343
github.com/stathat/consistent v1.0.0
4444
go.uber.org/automaxprocs v1.5.3
45-
golang.org/x/exp v0.0.0-20230905200255-921286631fa9
4645
golang.org/x/sync v0.8.0
4746
)
4847

@@ -173,6 +172,7 @@ require (
173172
go.uber.org/atomic v1.9.0 // indirect
174173
go.uber.org/multierr v1.11.0 // indirect
175174
golang.org/x/arch v0.7.0 // indirect
175+
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
176176
golang.org/x/image v0.15.0 // indirect
177177
golang.org/x/net v0.29.0 // indirect
178178
golang.org/x/oauth2 v0.23.0 // indirect

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
317317
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
318318
github.com/onsi/gomega v1.25.0 h1:Vw7br2PCDYijJHSfBOWhov+8cAnUf8MfMaIOV323l6Y=
319319
github.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM=
320-
github.com/openimsdk/gomake v0.0.15-alpha.2 h1:5Q8yl8ezy2yx+q8/ucU/t4kJnDfCzNOrkXcDACCqtyM=
321-
github.com/openimsdk/gomake v0.0.15-alpha.2/go.mod h1:PndCozNc2IsQIciyn9mvEblYWZwJmAI+06z94EY+csI=
320+
github.com/openimsdk/gomake v0.0.14-alpha.5 h1:VY9c5x515lTfmdhhPjMvR3BBRrRquAUCFsz7t7vbv7Y=
321+
github.com/openimsdk/gomake v0.0.14-alpha.5/go.mod h1:PndCozNc2IsQIciyn9mvEblYWZwJmAI+06z94EY+csI=
322322
github.com/openimsdk/protocol v0.0.72-alpha.68 h1:Ekn6S9Ftt12Xs/p9kJ39RDr2gSwIczz+MmSHQE4lAek=
323323
github.com/openimsdk/protocol v0.0.72-alpha.68/go.mod h1:Iet+piS/jaS+kWWyj6EEr36mk4ISzIRYjoMSVA4dq2M=
324324
github.com/openimsdk/tools v0.0.50-alpha.62 h1:e/m1XL7+EXbkOoxr/En/612WcOPKOUHPBj0++gG6MuQ=

internal/api/auth.go

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package api
1616

1717
import (
1818
"github.com/gin-gonic/gin"
19-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2019
"github.com/openimsdk/protocol/auth"
2120
"github.com/openimsdk/tools/a2r"
2221
)

internal/api/conversation.go

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package api
1616

1717
import (
1818
"github.com/gin-gonic/gin"
19-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2019
"github.com/openimsdk/protocol/conversation"
2120
"github.com/openimsdk/tools/a2r"
2221
)

internal/api/friend.go

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package api
1717
import (
1818
"github.com/gin-gonic/gin"
1919

20-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2120
"github.com/openimsdk/protocol/relation"
2221
"github.com/openimsdk/tools/a2r"
2322
)

internal/api/group.go

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package api
1616

1717
import (
1818
"github.com/gin-gonic/gin"
19-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2019
"github.com/openimsdk/protocol/group"
2120
"github.com/openimsdk/tools/a2r"
2221
)

internal/api/init.go

+1-22
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030

3131
kdisc "github.com/openimsdk/open-im-server/v3/pkg/common/discoveryregister"
3232
"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
33-
"github.com/openimsdk/tools/discovery/etcd"
33+
"github.com/openimsdk/tools/discovery"
3434
"github.com/openimsdk/tools/errs"
3535
"github.com/openimsdk/tools/log"
3636
"github.com/openimsdk/tools/system/program"
@@ -55,34 +55,13 @@ func Start(ctx context.Context, index int, config *Config) error {
5555
if err != nil {
5656
return errs.WrapMsg(err, "failed to register discovery service")
5757
}
58-
client.AddOption(mw.GrpcClient(), grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithDefaultServiceConfig(fmt.Sprintf(`{"LoadBalancingPolicy": "%s"}`, "round_robin")))
5958

6059
var (
6160
netDone = make(chan struct{}, 1)
6261
netErr error
6362
prometheusPort int
6463
)
6564

66-
registerIP, err := network.GetRpcRegisterIP("")
67-
if err != nil {
68-
return err
69-
}
70-
71-
getAutoPort := func() (net.Listener, int, error) {
72-
registerAddr := net.JoinHostPort(registerIP, "0")
73-
listener, err := net.Listen("tcp", registerAddr)
74-
if err != nil {
75-
return nil, 0, errs.WrapMsg(err, "listen err", "registerAddr", registerAddr)
76-
}
77-
_, portStr, _ := net.SplitHostPort(listener.Addr().String())
78-
port, _ := strconv.Atoi(portStr)
79-
return listener, port, nil
80-
}
81-
82-
if config.API.Prometheus.AutoSetPorts && config.Discovery.Enable != conf.ETCD {
83-
return errs.New("only etcd support autoSetPorts", "RegisterName", "api").Wrap()
84-
}
85-
8665
router, err := newGinRouter(ctx, client, config)
8766
if err != nil {
8867
return err

internal/api/jssdk/jssdk.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,30 @@ import (
1313
"github.com/openimsdk/protocol/sdkws"
1414
"github.com/openimsdk/tools/mcontext"
1515
"github.com/openimsdk/tools/utils/datautil"
16-
"sort"
1716
)
1817

1918
const (
2019
maxGetActiveConversation = 500
2120
defaultGetActiveConversation = 100
2221
)
2322

24-
func NewJSSdkApi(user user.UserClient, friend relation.FriendClient, group group.GroupClient, msg msg.MsgClient, conv conversation.ConversationClient) *JSSdk {
23+
func NewJSSdkApi(userClient *rpcli.UserClient, relationClient *rpcli.RelationClient, groupClient *rpcli.GroupClient,
24+
conversationClient *rpcli.ConversationClient, msgClient *rpcli.MsgClient) *JSSdk {
2525
return &JSSdk{
26-
user: user,
27-
friend: friend,
28-
group: group,
29-
msg: msg,
30-
conv: conv,
26+
userClient: userClient,
27+
relationClient: relationClient,
28+
groupClient: groupClient,
29+
conversationClient: conversationClient,
30+
msgClient: msgClient,
3131
}
3232
}
3333

3434
type JSSdk struct {
35-
userClient rpcli.UserClient
36-
relationClient rpcli.RelationClient
37-
groupClient rpcli.GroupClient
38-
conversationClient rpcli.ConversationClient
39-
msgClient rpcli.MsgClient
35+
userClient *rpcli.UserClient
36+
relationClient *rpcli.RelationClient
37+
groupClient *rpcli.GroupClient
38+
conversationClient *rpcli.ConversationClient
39+
msgClient *rpcli.MsgClient
4040
}
4141

4242
func (x *JSSdk) GetActiveConversations(c *gin.Context) {

internal/api/router.go

+13-38
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"github.com/openimsdk/open-im-server/v3/pkg/rpcli"
7+
pbAuth "github.com/openimsdk/protocol/auth"
78
"github.com/openimsdk/protocol/conversation"
89
"github.com/openimsdk/protocol/group"
910
"github.com/openimsdk/protocol/msg"
@@ -23,12 +24,8 @@ import (
2324
"google.golang.org/grpc"
2425
"google.golang.org/grpc/credentials/insecure"
2526

26-
"net/http"
27-
"strings"
28-
2927
"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
3028
"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
31-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
3229
"github.com/openimsdk/protocol/constant"
3330
"github.com/openimsdk/tools/apiresp"
3431
"github.com/openimsdk/tools/discovery"
@@ -61,31 +58,31 @@ func prommetricsGin() gin.HandlerFunc {
6158
func newGinRouter(ctx context.Context, client discovery.SvcDiscoveryRegistry, config *Config) (*gin.Engine, error) {
6259
client.AddOption(mw.GrpcClient(), grpc.WithTransportCredentials(insecure.NewCredentials()),
6360
grpc.WithDefaultServiceConfig(fmt.Sprintf(`{"LoadBalancingPolicy": "%s"}`, "round_robin")))
64-
authConn, err := client.GetConn(ctx, config.Discovery.RpcService.Auth)
61+
authConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Auth)
6562
if err != nil {
6663
return nil, err
6764
}
68-
userConn, err := client.GetConn(ctx, config.Discovery.RpcService.User)
65+
userConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.User)
6966
if err != nil {
7067
return nil, err
7168
}
72-
groupConn, err := client.GetConn(ctx, config.Discovery.RpcService.Group)
69+
groupConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Group)
7370
if err != nil {
7471
return nil, err
7572
}
76-
friendConn, err := client.GetConn(ctx, config.Discovery.RpcService.Friend)
73+
friendConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Friend)
7774
if err != nil {
7875
return nil, err
7976
}
80-
conversationConn, err := client.GetConn(ctx, config.Discovery.RpcService.Conversation)
77+
conversationConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Conversation)
8178
if err != nil {
8279
return nil, err
8380
}
84-
thirdConn, err := client.GetConn(ctx, config.Discovery.RpcService.Third)
81+
thirdConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Third)
8582
if err != nil {
8683
return nil, err
8784
}
88-
msgConn, err := client.GetConn(ctx, config.Discovery.RpcService.Msg)
85+
msgConn, err := client.GetConn(ctx, config.Share.RpcRegisterName.Msg)
8986
if err != nil {
9087
return nil, err
9188
}
@@ -94,15 +91,6 @@ func newGinRouter(ctx context.Context, client discovery.SvcDiscoveryRegistry, co
9491
if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
9592
_ = v.RegisterValidation("required_if", RequiredIf)
9693
}
97-
// init rpc client here
98-
userRpc := rpcclient.NewUser(disCov, config.Share.RpcRegisterName.User, config.Share.RpcRegisterName.MessageGateway,
99-
config.Share.IMAdminUserID)
100-
groupRpc := rpcclient.NewGroup(disCov, config.Share.RpcRegisterName.Group)
101-
friendRpc := rpcclient.NewFriend(disCov, config.Share.RpcRegisterName.Friend)
102-
messageRpc := rpcclient.NewMessage(disCov, config.Share.RpcRegisterName.Msg)
103-
conversationRpc := rpcclient.NewConversation(disCov, config.Share.RpcRegisterName.Conversation)
104-
authRpc := rpcclient.NewAuth(disCov, config.Share.RpcRegisterName.Auth)
105-
thirdRpc := rpcclient.NewThird(disCov, config.Share.RpcRegisterName.Third, config.API.Prometheus.GrafanaURL)
10694
switch config.API.Api.CompressionLevel {
10795
case NoCompression:
10896
case DefaultCompression:
@@ -112,10 +100,10 @@ func newGinRouter(ctx context.Context, client discovery.SvcDiscoveryRegistry, co
112100
case BestSpeed:
113101
r.Use(gzip.Gzip(gzip.BestSpeed))
114102
}
115-
r.Use(prommetricsGin(), gin.RecoveryWithWriter(gin.DefaultErrorWriter, mw.GinPanicErr), mw.CorsHandler(), mw.GinParseOperationID(), GinParseToken(rpcli.NewAuthClient(authConn)))
116-
j := jssdk.NewJSSdkApi()
103+
r.Use(prommetricsGin(), gin.RecoveryWithWriter(gin.DefaultErrorWriter, mw.GinPanicErr), mw.CorsHandler(),
104+
mw.GinParseOperationID(), GinParseToken(rpcli.NewAuthClient(authConn)))
117105

118-
u := NewUserApi(user.NewUserClient(userConn), client, config.Discovery.RpcService)
106+
u := NewUserApi(user.NewUserClient(userConn), client, config.Share.RpcRegisterName)
119107
{
120108
userRouterGroup := r.Group("/user")
121109
userRouterGroup.POST("/user_register", u.UserRegister)
@@ -290,25 +278,12 @@ func newGinRouter(ctx context.Context, client discovery.SvcDiscoveryRegistry, co
290278
}
291279

292280
{
281+
j := jssdk.NewJSSdkApi(rpcli.NewUserClient(userConn), rpcli.NewRelationClient(friendConn),
282+
rpcli.NewGroupClient(groupConn), rpcli.NewConversationClient(conversationConn), rpcli.NewMsgClient(msgConn))
293283
jssdk := r.Group("/jssdk")
294284
jssdk.POST("/get_conversations", j.GetConversations)
295285
jssdk.POST("/get_active_conversations", j.GetActiveConversations)
296286
}
297-
{
298-
pd := NewPrometheusDiscoveryApi(config, client)
299-
proDiscoveryGroup := r.Group("/prometheus_discovery", pd.Enable)
300-
proDiscoveryGroup.GET("/api", pd.Api)
301-
proDiscoveryGroup.GET("/user", pd.User)
302-
proDiscoveryGroup.GET("/group", pd.Group)
303-
proDiscoveryGroup.GET("/msg", pd.Msg)
304-
proDiscoveryGroup.GET("/friend", pd.Friend)
305-
proDiscoveryGroup.GET("/conversation", pd.Conversation)
306-
proDiscoveryGroup.GET("/third", pd.Third)
307-
proDiscoveryGroup.GET("/auth", pd.Auth)
308-
proDiscoveryGroup.GET("/push", pd.Push)
309-
proDiscoveryGroup.GET("/msg_gateway", pd.MessageGateway)
310-
proDiscoveryGroup.GET("/msg_transfer", pd.MessageTransfer)
311-
}
312287

313288
return r, nil
314289
}

internal/api/statistics.go

-32
This file was deleted.

internal/api/third.go

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"strings"
2525

2626
"github.com/gin-gonic/gin"
27-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2827
"github.com/openimsdk/protocol/third"
2928
"github.com/openimsdk/tools/a2r"
3029
"github.com/openimsdk/tools/errs"

internal/api/user.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,18 @@ import (
2222
"github.com/openimsdk/protocol/user"
2323
"github.com/openimsdk/tools/a2r"
2424
"github.com/openimsdk/tools/apiresp"
25+
"github.com/openimsdk/tools/discovery"
2526
"github.com/openimsdk/tools/errs"
2627
"github.com/openimsdk/tools/log"
2728
)
2829

2930
type UserApi struct {
3031
Client user.UserClient
3132
discov discovery.SvcDiscoveryRegistry
32-
config config.RpcService
33+
config config.RpcRegisterName
3334
}
3435

35-
func NewUserApi(client user.UserClient, discov discovery.SvcDiscoveryRegistry, config config.RpcService) UserApi {
36+
func NewUserApi(client user.UserClient, discov discovery.SvcDiscoveryRegistry, config config.RpcRegisterName) UserApi {
3637
return UserApi{Client: client, discov: discov, config: config}
3738
}
3839

internal/msggateway/client.go

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"context"
1919
"encoding/json"
2020
"fmt"
21-
"runtime/debug"
2221
"sync"
2322
"sync/atomic"
2423
"time"

internal/msggateway/hub_server.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"github.com/openimsdk/open-im-server/v3/pkg/authverify"
2323
"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
2424
"github.com/openimsdk/open-im-server/v3/pkg/common/startrpc"
25-
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
2625
"github.com/openimsdk/protocol/constant"
2726
"github.com/openimsdk/protocol/msggateway"
2827
"github.com/openimsdk/protocol/sdkws"
@@ -36,7 +35,7 @@ import (
3635
)
3736

3837
func (s *Server) InitServer(ctx context.Context, config *Config, disCov discovery.SvcDiscoveryRegistry, server *grpc.Server) error {
39-
userConn, err := disCov.GetConn(ctx, config.Discovery.RpcService.User)
38+
userConn, err := disCov.GetConn(ctx, config.Share.RpcRegisterName.User)
4039
if err != nil {
4140
return err
4241
}
@@ -45,7 +44,6 @@ func (s *Server) InitServer(ctx context.Context, config *Config, disCov discover
4544
return err
4645
}
4746
msggateway.RegisterMsgGatewayServer(server, s)
48-
s.userRcp = rpcclient.NewUserRpcClient(disCov, config.Share.RpcRegisterName.User, config.Share.IMAdminUserID)
4947
if s.ready != nil {
5048
return s.ready(s)
5149
}
@@ -70,7 +68,6 @@ type Server struct {
7068
config *Config
7169
pushTerminal map[int]struct{}
7270
ready func(srv *Server) error
73-
userRcp rpcclient.UserRpcClient
7471
queue *memamq.MemoryQueue
7572
userClient *rpcli.UserClient
7673
}
@@ -79,9 +76,8 @@ func (s *Server) SetLongConnServer(LongConnServer LongConnServer) {
7976
s.LongConnServer = LongConnServer
8077
}
8178

82-
func NewServer(rpcPort int, longConnServer LongConnServer, conf *Config, ready func(srv *Server) error) *Server {
79+
func NewServer(longConnServer LongConnServer, conf *Config, ready func(srv *Server) error) *Server {
8380
s := &Server{
84-
rpcPort: rpcPort,
8581
LongConnServer: longConnServer,
8682
pushTerminal: make(map[int]struct{}),
8783
config: conf,

internal/msggateway/init.go

-4
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ func Start(ctx context.Context, index int, conf *Config) error {
4141
if err != nil {
4242
return err
4343
}
44-
rpcPort, err := datautil.GetElemByIndex(conf.MsgGateway.RPC.Ports, index)
45-
if err != nil {
46-
return err
47-
}
4844
rdb, err := redisutil.NewRedisClient(ctx, conf.RedisConfig.Build())
4945
if err != nil {
5046
return err

0 commit comments

Comments
 (0)