Commit 0fb1e182 authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Correctly register deferred messages sent from authoritative matches.

parent dc77105b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@ All notable changes to this project are documented below.
The format is based on [keep a changelog](http://keepachangelog.com) and this project uses [semantic versioning](http://semver.org).

## [Unreleased]

### Fixed
- Correctly register deferred messages sent from authoritative matches.

## [2.3.0] - 2018-12-31
### Added
+1 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ func main() {
	leaderboardCache := server.NewLocalLeaderboardCache(logger, startupLogger, db)
	leaderboardRankCache := server.NewLocalLeaderboardRankCache(logger, startupLogger, db, config.GetLeaderboard(), leaderboardCache)
	leaderboardScheduler := server.NewLocalLeaderboardScheduler(logger, db, leaderboardCache, leaderboardRankCache)
	matchRegistry := server.NewLocalMatchRegistry(logger, startupLogger, config, tracker, config.GetName())
	matchRegistry := server.NewLocalMatchRegistry(logger, startupLogger, config, tracker, router, config.GetName())
	tracker.SetMatchJoinListener(matchRegistry.Join)
	tracker.SetMatchLeaveListener(matchRegistry.Leave)
	runtime, err := server.NewRuntime(logger, startupLogger, db, jsonpbMarshaler, jsonpbUnmarshaler, config, socialClient, leaderboardCache, leaderboardRankCache, leaderboardScheduler, sessionRegistry, matchRegistry, tracker, router)
+2 −2
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ func (m *MatchDataMessage) GetReceiveTime() int64 {
type MatchHandler struct {
	logger        *zap.Logger
	matchRegistry MatchRegistry
	tracker       Tracker
	router        MessageRouter

	JoinMarkerList *MatchJoinMarkerList
@@ -102,7 +101,7 @@ type MatchHandler struct {
	state interface{}
}

func NewMatchHandler(logger *zap.Logger, config Config, matchRegistry MatchRegistry, core RuntimeMatchCore, id uuid.UUID, node string, params map[string]interface{}) (*MatchHandler, error) {
func NewMatchHandler(logger *zap.Logger, config Config, matchRegistry MatchRegistry, router MessageRouter, core RuntimeMatchCore, id uuid.UUID, node string, params map[string]interface{}) (*MatchHandler, error) {
	presenceList := &MatchPresenceList{
		presences: make([]*PresenceID, 0, 10),
	}
@@ -131,6 +130,7 @@ func NewMatchHandler(logger *zap.Logger, config Config, matchRegistry MatchRegis
	mh := &MatchHandler{
		logger:        logger,
		matchRegistry: matchRegistry,
		router:        router,

		JoinMarkerList: &MatchJoinMarkerList{
			joinMarkers: make(map[uuid.UUID]*MatchJoinMarker),
+4 −2
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ type LocalMatchRegistry struct {
	logger  *zap.Logger
	config  Config
	tracker Tracker
	router  MessageRouter
	node    string
	matches map[uuid.UUID]*MatchHandler
	index   bleve.Index
@@ -108,7 +109,7 @@ type LocalMatchRegistry struct {
	stoppedCh chan struct{}
}

func NewLocalMatchRegistry(logger, startupLogger *zap.Logger, config Config, tracker Tracker, node string) MatchRegistry {
func NewLocalMatchRegistry(logger, startupLogger *zap.Logger, config Config, tracker Tracker, router MessageRouter, node string) MatchRegistry {
	mapping := bleve.NewIndexMapping()
	mapping.DefaultAnalyzer = keyword.Name

@@ -121,6 +122,7 @@ func NewLocalMatchRegistry(logger, startupLogger *zap.Logger, config Config, tra
		logger:  logger,
		config:  config,
		tracker: tracker,
		router:  router,
		node:    node,
		matches: make(map[uuid.UUID]*MatchHandler),
		index:   index,
@@ -157,7 +159,7 @@ func (r *LocalMatchRegistry) NewMatch(logger *zap.Logger, id uuid.UUID, core Run
		return nil, errors.New("shutdown in progress")
	}

	match, err := NewMatchHandler(logger, r.config, r, core, id, r.node, params)
	match, err := NewMatchHandler(logger, r.config, r, r.router, core, id, r.node, params)
	if err != nil {
		return nil, err
	}