Documentation
¶
Index ¶
- func GetBindBroadcastTopic(svType string) string
- func GetUserKickTopic(uid string, svType string) string
- func GetUserMessagesTopic(uid string, svType string) string
- type Action
- type GRPCClient
- func (gs *GRPCClient) AddServer(sv *Server)
- func (gs *GRPCClient) AfterInit()
- func (gs *GRPCClient) BeforeShutdown()
- func (gs *GRPCClient) BroadcastSessionBind(uid string) error
- func (gs *GRPCClient) Call(ctx context.Context, rpcType protos.RPCType, route *route.Route, ...) (*protos.Response, error)
- func (gs *GRPCClient) Init() error
- func (gs *GRPCClient) RemoveServer(sv *Server)
- func (gs *GRPCClient) Send(uid string, d []byte) error
- func (gs *GRPCClient) SendKick(userID string, serverType string, kick *protos.KickMsg) error
- func (gs *GRPCClient) SendPush(userID string, frontendSv *Server, push *protos.Push) error
- func (gs *GRPCClient) Shutdown() error
- type GRPCServer
- type InfoRetriever
- type NatsRPCClient
- func (ns *NatsRPCClient) AfterInit()
- func (ns *NatsRPCClient) BeforeShutdown()
- func (ns *NatsRPCClient) BroadcastSessionBind(uid string) error
- func (ns *NatsRPCClient) Call(ctx context.Context, rpcType protos.RPCType, route *route.Route, ...) (*protos.Response, error)
- func (ns *NatsRPCClient) Init() error
- func (ns *NatsRPCClient) Send(topic string, data []byte) error
- func (ns *NatsRPCClient) SendKick(userID string, serverType string, kick *protos.KickMsg) error
- func (ns *NatsRPCClient) SendPush(userID string, frontendSv *Server, push *protos.Push) error
- func (ns *NatsRPCClient) Shutdown() error
- type NatsRPCServer
- func (ns *NatsRPCServer) AfterInit()
- func (ns *NatsRPCServer) BeforeShutdown()
- func (ns *NatsRPCServer) GetBindingsChannel() chan *nats.Msg
- func (ns *NatsRPCServer) GetUnhandledRequestsChannel() chan *protos.Request
- func (ns *NatsRPCServer) Init() error
- func (ns *NatsRPCServer) SetNanoServer(ps protos.NanoServer)
- func (ns *NatsRPCServer) Shutdown() error
- type RPCClient
- type RPCServer
- type RemoteBindingListener
- type SDListener
- type Server
- type ServiceDiscovery
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetBindBroadcastTopic ¶ added in v0.6.1
GetBindBroadcastTopic gets the topic on which bind events will be broadcasted
func GetUserKickTopic ¶ added in v0.6.1
GetUserKickTopic get the topic for kicking an user
func GetUserMessagesTopic ¶ added in v0.6.1
GetUserMessagesTopic get the topic for user
Types ¶
type GRPCClient ¶ added in v0.6.1
type GRPCClient struct {
// contains filtered or unexported fields
}
GRPCClient rpc client struct
func NewGRPCClient ¶ added in v0.6.1
func NewGRPCClient( config config.GRPCClientConfig, server *Server, metricsReporters []metrics.Reporter, bindingStorage interfaces.BindingStorage, infoRetriever InfoRetriever, ) (*GRPCClient, error)
NewGRPCClient returns a new instance of GRPCClient
func (*GRPCClient) AddServer ¶ added in v0.6.1
func (gs *GRPCClient) AddServer(sv *Server)
AddServer is called when a new server is discovered
func (*GRPCClient) AfterInit ¶ added in v0.6.1
func (gs *GRPCClient) AfterInit()
AfterInit runs after initialization
func (*GRPCClient) BeforeShutdown ¶ added in v0.6.1
func (gs *GRPCClient) BeforeShutdown()
BeforeShutdown runs before shutdown
func (*GRPCClient) BroadcastSessionBind ¶ added in v0.6.1
func (gs *GRPCClient) BroadcastSessionBind(uid string) error
BroadcastSessionBind sends the binding information to other servers that may be interested in this info
func (*GRPCClient) Call ¶ added in v0.6.1
func (gs *GRPCClient) Call( ctx context.Context, rpcType protos.RPCType, route *route.Route, session session.Session, msg *message.Message, server *Server, ) (*protos.Response, error)
Call makes a RPC Call
func (*GRPCClient) Init ¶ added in v0.6.1
func (gs *GRPCClient) Init() error
Init inits grpc rpc client
func (*GRPCClient) RemoveServer ¶ added in v0.6.1
func (gs *GRPCClient) RemoveServer(sv *Server)
RemoveServer is called when a server is removed
func (*GRPCClient) Send ¶ added in v0.6.1
func (gs *GRPCClient) Send(uid string, d []byte) error
Send not implemented in grpc client
func (*GRPCClient) SendPush ¶ added in v0.6.1
SendPush sends a message to an user, if you dont know the serverID that the user is connected to, you need to set a BindingStorage when creating the client TODO: Jaeger?
func (*GRPCClient) Shutdown ¶ added in v0.6.1
func (gs *GRPCClient) Shutdown() error
Shutdown stops grpc rpc server
type GRPCServer ¶ added in v0.6.1
type GRPCServer struct {
// contains filtered or unexported fields
}
GRPCServer rpc server struct
func NewGRPCServer ¶ added in v0.6.1
func NewGRPCServer(config config.GRPCServerConfig, server *Server, metricsReporters []metrics.Reporter) (*GRPCServer, error)
NewGRPCServer constructor
func (*GRPCServer) AfterInit ¶ added in v0.6.1
func (gs *GRPCServer) AfterInit()
AfterInit runs after initialization
func (*GRPCServer) BeforeShutdown ¶ added in v0.6.1
func (gs *GRPCServer) BeforeShutdown()
BeforeShutdown runs before shutdown
func (*GRPCServer) Init ¶ added in v0.6.1
func (gs *GRPCServer) Init() error
Init inits grpc rpc server
func (*GRPCServer) SetNanoServer ¶ added in v0.6.1
func (gs *GRPCServer) SetNanoServer(ps protos.NanoServer)
SetNanoServer sets the nano server
func (*GRPCServer) Shutdown ¶ added in v0.6.1
func (gs *GRPCServer) Shutdown() error
Shutdown stops grpc rpc server
type InfoRetriever ¶ added in v0.6.1
type InfoRetriever interface {
Region() string
}
InfoRetriever gets cluster info It can be implemented, for exemple, by reading env var, config or by accessing the cluster API
func NewInfoRetriever ¶ added in v0.6.1
func NewInfoRetriever(config config.InfoRetrieverConfig) InfoRetriever
NewInfoRetriever returns a *infoRetriever
type NatsRPCClient ¶ added in v0.6.1
type NatsRPCClient struct {
// contains filtered or unexported fields
}
NatsRPCClient struct
func NewNatsRPCClient ¶ added in v0.6.1
func NewNatsRPCClient( config config.NatsRPCClientConfig, server *Server, metricsReporters []metrics.Reporter, appDieChan chan bool, ) (*NatsRPCClient, error)
NewNatsRPCClient ctor
func (*NatsRPCClient) AfterInit ¶ added in v0.6.1
func (ns *NatsRPCClient) AfterInit()
AfterInit runs after initialization
func (*NatsRPCClient) BeforeShutdown ¶ added in v0.6.1
func (ns *NatsRPCClient) BeforeShutdown()
BeforeShutdown runs before shutdown
func (*NatsRPCClient) BroadcastSessionBind ¶ added in v0.6.1
func (ns *NatsRPCClient) BroadcastSessionBind(uid string) error
BroadcastSessionBind sends the binding information to other servers that may be interested in this info
func (*NatsRPCClient) Call ¶ added in v0.6.1
func (ns *NatsRPCClient) Call( ctx context.Context, rpcType protos.RPCType, route *route.Route, session session.Session, msg *message.Message, server *Server, ) (*protos.Response, error)
Call calls a method remotely
func (*NatsRPCClient) Init ¶ added in v0.6.1
func (ns *NatsRPCClient) Init() error
Init inits nats rpc client
func (*NatsRPCClient) Send ¶ added in v0.6.1
func (ns *NatsRPCClient) Send(topic string, data []byte) error
Send publishes a message in a given topic
func (*NatsRPCClient) Shutdown ¶ added in v0.6.1
func (ns *NatsRPCClient) Shutdown() error
Shutdown stops nats rpc server
type NatsRPCServer ¶ added in v0.6.1
type NatsRPCServer struct {
// contains filtered or unexported fields
}
NatsRPCServer struct
func NewNatsRPCServer ¶ added in v0.6.1
func NewNatsRPCServer( config config.NatsRPCServerConfig, server *Server, metricsReporters []metrics.Reporter, appDieChan chan bool, sessionPool session.SessionPool, ) (*NatsRPCServer, error)
NewNatsRPCServer ctor
func (*NatsRPCServer) AfterInit ¶ added in v0.6.1
func (ns *NatsRPCServer) AfterInit()
AfterInit runs after initialization
func (*NatsRPCServer) BeforeShutdown ¶ added in v0.6.1
func (ns *NatsRPCServer) BeforeShutdown()
BeforeShutdown runs before shutdown
func (*NatsRPCServer) GetBindingsChannel ¶ added in v0.6.1
func (ns *NatsRPCServer) GetBindingsChannel() chan *nats.Msg
GetBindingsChannel gets the channel that will receive all bindings
func (*NatsRPCServer) GetUnhandledRequestsChannel ¶ added in v0.6.1
func (ns *NatsRPCServer) GetUnhandledRequestsChannel() chan *protos.Request
GetUnhandledRequestsChannel gets the unhandled requests channel from nats rpc server
func (*NatsRPCServer) Init ¶ added in v0.6.1
func (ns *NatsRPCServer) Init() error
Init inits nats rpc server
func (*NatsRPCServer) SetNanoServer ¶ added in v0.6.1
func (ns *NatsRPCServer) SetNanoServer(ps protos.NanoServer)
SetNanoServer sets the nano server
func (*NatsRPCServer) Shutdown ¶ added in v0.6.1
func (ns *NatsRPCServer) Shutdown() error
Shutdown stops nats rpc server
type RPCClient ¶ added in v0.6.1
type RPCClient interface { Send(route string, data []byte) error SendPush(userID string, frontendSv *Server, push *protos.Push) error SendKick(userID string, serverType string, kick *protos.KickMsg) error BroadcastSessionBind(uid string) error Call(ctx context.Context, rpcType protos.RPCType, route *route.Route, session session.Session, msg *message.Message, server *Server) (*protos.Response, error) interfaces.Module }
RPCClient interface
type RPCServer ¶ added in v0.6.1
type RPCServer interface { SetNanoServer(protos.NanoServer) interfaces.Module }
RPCServer interface
type RemoteBindingListener ¶ added in v0.6.1
type RemoteBindingListener interface {
OnUserBind(uid, fid string)
}
RemoteBindingListener listens to session bindings in remote servers
type SDListener ¶ added in v0.6.1
SDListener interface
type Server ¶ added in v0.6.1
type Server struct { ID string `json:"id"` Type string `json:"type"` Metadata map[string]string `json:"metadata"` Frontend bool `json:"frontend"` Hostname string `json:"hostname"` }
Server struct
func (*Server) AsJSONString ¶ added in v0.6.1
AsJSONString returns the server as a json string
type ServiceDiscovery ¶ added in v0.6.1
type ServiceDiscovery interface { GetServersByType(serverType string) (map[string]*Server, error) GetServer(id string) (*Server, error) GetServers() []*Server SyncServers(firstSync bool) error AddListener(listener SDListener) interfaces.Module }
ServiceDiscovery is the interface for a service discovery client
func NewEtcdServiceDiscovery ¶ added in v0.6.1
func NewEtcdServiceDiscovery( config config.EtcdServiceDiscoveryConfig, server *Server, appDieChan chan bool, cli ...*clientv3.Client, ) (ServiceDiscovery, error)
NewEtcdServiceDiscovery ctor