mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-04-28 14:29:19 +08:00
Feature: add direct connect mode with zookeeper, etcd, and k8s (#1775)
* fix: fix the bug
* fix: fix the imAdmin permission and searchNoficitaion resp
* 2023 Annual Summary Reflections and Aspirations
Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
* fix: dissmissGroup and lack of keyword bug (#1678)
* Update docker-start-all.sh
* Update env-template.yaml
* Update docker-start-all.sh
* fix openim config mongo passwd env
Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
* fix: fix some bug
* fix: group messages sync failed.
* fix: fix the valiable name
* fix: fix the getSortedConversation api
* fix: fix the mongo search error
* fix: GroupApplicationAcceptedNotification
(cherry picked from commit 4c3c4555a3)
* fix: GroupApplicationAcceptedNotification
* fix update friends
* fix pageFindUser
* Delete .devcontainer directory
* fix find user
* Your commit message here
* feat: direct conn
* fix: direct conn message gateway array exceed length
* fix: direct conn message gateway array exceed length
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: direct conn cannot find name
* fix: operation id invalid
* feat: multiple address
* feat: multiple address
* feat: multiple address
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: multiple addresses
* feat: direct conn with multiple ports
* Update user.go
* feat: direct conn with multiple ports
* feat: remove checkServiceHealth
* feat: update fmt error
* feat: update .devcontainer
* feat: update .devcontainer
* feat: update fmt.Errorf(
---------
Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
Co-authored-by: luhaoling <2198702716@qq.com>
Co-authored-by: Xinwei Xiong <3293172751@qq.com>
Co-authored-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
Co-authored-by: Brabem <69128477+luhaoling@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
Co-authored-by: OpenIM Robot <139873238+openimbot@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <993506633@qq.com>
This commit is contained in:
@@ -132,20 +132,40 @@ func getMsgGatewayHost(ctx context.Context) []string {
|
||||
// GetConns returns the gRPC client connections to the specified service.
|
||||
func (cli *K8sDR) GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) {
|
||||
|
||||
// This conditional checks if the serviceName is not the OpenImMessageGatewayName.
|
||||
// It seems to handle a special case for the OpenImMessageGateway.
|
||||
if serviceName != config.Config.RpcRegisterName.OpenImMessageGatewayName {
|
||||
// DialContext creates a client connection to the given target (serviceName) using the specified context.
|
||||
// 'cli.options' are likely default or common options for all connections in this struct.
|
||||
// 'opts...' allows for additional gRPC dial options to be passed and used.
|
||||
conn, err := grpc.DialContext(ctx, serviceName, append(cli.options, opts...)...)
|
||||
|
||||
// The function returns a slice of client connections with the new connection, or an error if occurred.
|
||||
return []*grpc.ClientConn{conn}, err
|
||||
} else {
|
||||
// This block is executed if the serviceName is OpenImMessageGatewayName.
|
||||
// 'ret' will accumulate the connections to return.
|
||||
var ret []*grpc.ClientConn
|
||||
|
||||
// getMsgGatewayHost presumably retrieves hosts for the message gateway service.
|
||||
// The context is passed, likely for cancellation and timeout control.
|
||||
gatewayHosts := getMsgGatewayHost(ctx)
|
||||
|
||||
// Iterating over the retrieved gateway hosts.
|
||||
for _, host := range gatewayHosts {
|
||||
// Establishes a connection to each host.
|
||||
// Again, appending cli.options with any additional opts provided.
|
||||
conn, err := grpc.DialContext(ctx, host, append(cli.options, opts...)...)
|
||||
|
||||
// If there's an error while dialing any host, the function returns immediately with the error.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
// If the connection is successful, it is added to the 'ret' slice.
|
||||
ret = append(ret, conn)
|
||||
}
|
||||
}
|
||||
// After all hosts are processed, the slice of connections is returned.
|
||||
return ret, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user