Files
service-common/net/grpc/grpcclient/client_scene.go

44 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package grpcclient
import (
"fmt"
"git.hlsq.asia/alex/proto/proto/rs/rspb"
"git.hlsq.asia/alex/service-common/discover"
"git.hlsq.asia/alex/service-common/discover/common"
"git.hlsq.asia/alex/service-common/net/grpc/resolver"
"google.golang.org/grpc"
)
// SceneNewClient 根据SID查找场景服,一般不用这个函数
func SceneNewClient(sid ...int64) (rspb.SceneClient, error) {
var c *grpc.ClientConn
var err error
if len(sid) == 0 {
c, err = resolver.GetGrpcClientConn("etcd:///" + common.KeyDiscoverServiceNameScene)
} else {
c, err = discover.FindServer(common.KeyDiscoverScene, sid...)
}
if err != nil {
return nil, err
}
return rspb.NewSceneClient(c), nil
}
// SceneInstanceNewClient 根据副本唯一编号查找场景服
func SceneInstanceNewClient(uniqueNO int64) (rspb.SceneClient, error) {
sid := discover.FindInstanceByUniqueNo(uniqueNO)
if sid == 0 {
return nil, fmt.Errorf("instance not found: %v", uniqueNO)
}
return SceneNewClient(sid)
}
func SceneNewBroadcastClient() map[int64]rspb.SceneClient {
clientM := make(map[int64]rspb.SceneClient)
connM := discover.FindServerAll(common.KeyDiscoverScene)
for sid, conn := range connM {
clientM[sid] = rspb.NewSceneClient(conn)
}
return clientM
}