events

package
v0.0.0-...-10d5746 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2019 License: AGPL-3.0 Imports: 8 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	TTL    time.Duration `default:"168h"` // 1 week
	Prefix string        `default:"filharmonic:ws:"`
}

type Event

type Event struct {
	Type    EventType `json:"type"`
	Payload Payload   `json:"payload"`
}

type EventType

type EventType string
const (
	// Client events
	EventConnect     EventType = "connect"
	EventDisonnect   EventType = "disconnect"
	EventSubscribe   EventType = "subscribe"
	EventUnsubscribe EventType = "unsubscribe"

	// Server events
	EventResourceUpdated EventType = "resource_updated"
)

type EventsManager

type EventsManager interface {
	DispatchUpdatedResources(ctx *domain.UserContext, resource string) error
	DispatchUpdatedResource(ctx *domain.UserContext, resource string, id int64) error
	DispatchUpdatedResourcesToUsers(resources string, userIds []int64) error
	HandleRequest(w http.ResponseWriter, r *http.Request) error
}

type Payload

type Payload struct {
	// connect / disconnect
	UserId int64 `json:"user_id,omitempty"`

	// subscribe / unsubscribe / resource_updated
	Resource   string `json:"resource,omitempty"`
	ResourceId int64  `json:"resource_id,omitempty"`
}

type RedisEventsManager

type RedisEventsManager struct {
	// contains filtered or unexported fields
}

func New

func New(config Config, redisClient *redis.Client) *RedisEventsManager

func (*RedisEventsManager) DispatchUpdatedResource

func (em *RedisEventsManager) DispatchUpdatedResource(ctx *domain.UserContext, resource string, id int64) error

func (*RedisEventsManager) DispatchUpdatedResources

func (em *RedisEventsManager) DispatchUpdatedResources(ctx *domain.UserContext, resource string) error

func (*RedisEventsManager) DispatchUpdatedResourcesToUsers

func (em *RedisEventsManager) DispatchUpdatedResourcesToUsers(resources string, userIds []int64) error

func (*RedisEventsManager) HandleRequest

func (em *RedisEventsManager) HandleRequest(w http.ResponseWriter, r *http.Request) error

type StubEventsManager

type StubEventsManager struct {
	// contains filtered or unexported fields
}

func NewStub

func NewStub() *StubEventsManager

func (*StubEventsManager) DispatchUpdatedResource

func (em *StubEventsManager) DispatchUpdatedResource(ctx *domain.UserContext, resource string, id int64) error

func (*StubEventsManager) DispatchUpdatedResources

func (em *StubEventsManager) DispatchUpdatedResources(ctx *domain.UserContext, resource string) error

func (*StubEventsManager) DispatchUpdatedResourcesToUsers

func (em *StubEventsManager) DispatchUpdatedResourcesToUsers(resource string, userIds []int64) error

func (*StubEventsManager) HandleRequest

func (em *StubEventsManager) HandleRequest(w http.ResponseWriter, r *http.Request) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL