model

package
v0.0.0-...-f573b6e Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2021 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

TODO: move it into different package, suggestion: message

Index

Constants

View Source
const (
	ServerStatusCreating = "CREATING"
	ServerStatusReady    = "READY"
	ServerStatusBusy     = "BUSY"
)

Server status constants

View Source
const (
	TypeUnknown = "unknown"

	// Server messages
	TypeConnected    = "connectNotif"
	TypeDisconnected = "disconnectNotif"
	TypeError        = "errorNotif"
	TypeShutdown     = "shutdownNotif"
	TypeHeartbeat    = "heartbeat"

	// SuccessCode
	SuccessCode = 0

	// Matchmaking status
	MMStatusStart   = "start"
	MMStatusDone    = "done"
	MMStatusCancel  = "cancel"
	MMStatusTimeout = "timeout"

	// System Components
	SystemComponentChat = "chat"
)
View Source
const (
	// Party
	TypeInfoRequest                 = "partyInfoRequest"
	TypeInfoResponse                = "partyInfoResponse"
	TypeCreateRequest               = "partyCreateRequest"
	TypeCreateResponse              = "partyCreateResponse"
	TypeLeaveRequest                = "partyLeaveRequest"
	TypeLeaveResponse               = "partyLeaveResponse"
	TypeLeaveNotif                  = "partyLeaveNotif"
	TypeInviteRequest               = "partyInviteRequest"
	TypeInviteResponse              = "partyInviteResponse"
	TypeInviteNotif                 = "partyInviteNotif"
	TypeGetInvitatedNotif           = "partyGetInvitedNotif"
	TypeJoinRequest                 = "partyJoinRequest"
	TypeJoinResponse                = "partyJoinResponse"
	TypeJoinNotif                   = "partyJoinNotif"
	TypeRejectRequest               = "partyRejectRequest"
	TypeRejectResponse              = "partyRejectResponse"
	TypeRejectNotif                 = "partyRejectNotif"
	TypeKickRequest                 = "partyKickRequest"
	TypeKickResponse                = "partyKickResponse"
	TypeKickNotice                  = "partyKickNotif"
	TypePersonalChatRequest         = "personalChatRequest"
	TypePersonalChatResponse        = "personalChatResponse"
	TypePersonalChatNotif           = "personalChatNotif"
	TypePartyChatRequest            = "partyChatRequest"
	TypePartyChatResponse           = "partyChatResponse"
	TypePartyChatNotif              = "partyChatNotif"
	TypePersonalChatHistoryRequest  = "personalChatHistoryRequest"
	TypePersonalChatHistoryResponse = "personalChatHistoryResponse"
	TypePromoteLeaderRequest        = "partyPromoteLeaderRequest"
	TypePromoteLeaderResponse       = "partyPromoteLeaderResponse"

	// Presence
	TypeFriendsPresenceRequest  = "friendsStatusRequest"
	TypeFriendsPresenceResponse = "friendsStatusResponse"
	TypeSetUserStatusRequest    = "setUserStatusRequest"
	TypeSetUserStatusResponse   = "setUserStatusResponse"
	TypeUserStatusNotif         = "userStatusNotif"

	// TypeClientResetRequest is request from clienthandler to lobby
	TypeClientResetRequest = "clientResetRequest"

	// Notification
	TypeGetOfflineNotificationRequest  = "offlineNotificationRequest"
	TypeGetOfflineNotificationResponse = "offlineNotificationResponse"
	TypeNotificationMessage            = "messageNotif"

	// Matchmaking
	TypeStartMatchmakingRequest   = "startMatchmakingRequest"
	TypeStartMatchmakingResponse  = "startMatchmakingResponse"
	TypeCancelMatchmakingRequest  = "cancelMatchmakingRequest"
	TypeCancelMatchmakingResponse = "cancelMatchmakingResponse"
	TypeMatchmakingNotif          = "matchmakingNotif"
	TypeSetReadyConsentRequest    = "setReadyConsentRequest"
	TypeSetReadyConsentResponse   = "setReadyConsentResponse"
	TypeSetReadyConsentNotif      = "setReadyConsentNotif"
	TypeRematchmakingNotif        = "rematchmakingNotif"

	// Deprecated presence
	TypeOnlineFriends            = "onlineFriends"
	TypeListOnlineFriendsRequest = "listOnlineFriendsRequest"

	// Friends
	TypeRequestFriendsRequest       = "requestFriendsRequest"
	TypeRequestFriendsResponse      = "requestFriendsResponse"
	TypeRequestFriendsNotif         = "requestFriendsNotif"
	TypeListIncomingFriendsRequest  = "listIncomingFriendsRequest"
	TypeListIncomingFriendsResponse = "listIncomingFriendsResponse"
	TypeListOutgoingFriendsRequest  = "listOutgoingFriendsRequest"
	TypeListOutgoingFriendsResponse = "listOutgoingFriendsResponse"
	TypeAcceptFriendsRequest        = "acceptFriendsRequest"
	TypeAcceptFriendsResponse       = "acceptFriendsResponse"
	TypeAcceptFriendsNotif          = "acceptFriendsNotif"
	TypeRejectFriendsRequest        = "rejectFriendsRequest"
	TypeRejectFriendsResponse       = "rejectFriendsResponse"
	TypeCancelFriendsRequest        = "cancelFriendsRequest"
	TypeCancelFriendsResponse       = "cancelFriendsResponse"
	TypeUnfriendRequest             = "unfriendRequest"
	TypeUnfriendResponse            = "unfriendResponse"
	TypeUnfriendNotif               = "unfriendNotif"
	TypeListOfFriendsRequest        = "listOfFriendsRequest"
	TypeListOfFriendsResponse       = "listOfFriendsResponse"
	TypeGetFriendshipStatusRequest  = "getFriendshipStatusRequest"
	TypeGetFriendshipStatusResponse = "getFriendshipStatusResponse"
	TypeBlockPlayerRequest          = "blockPlayerRequest"
	TypeBlockPlayerResponse         = "blockPlayerResponse"
	TypeBlockPlayerNotif            = "blockPlayerNotif"
	TypeUnblockPlayerRequest        = "unblockPlayerRequest"
	TypeUnblockPlayerResponse       = "unblockPlayerResponse"
	TypeUnblockPlayerNotif          = "unblockPlayerNotif"

	// DSM
	TypeCreateDSRequest  = "createDSRequest"
	TypeWaitForDSRequest = "waitForDSRequest"
	TypeClaimDSRequest   = "claimDSRequest"
	TypeNotifyDSRequest  = "notifyDSRequest"
	TypeDSNotif          = "dsNotif"

	// System events
	TypeSystemComponentsStatus = "systemComponentsStatus"

	// Party
	TypePartyDataUpdateNotif = "partyDataUpdateNotif"

	// Channel Chat
	TypeJoinDefaultChannelRequest  = "joinDefaultChannelRequest"
	TypeJoinDefaultChannelResponse = "joinDefaultChannelResponse"
	TypeUserBannedNotification     = "userBannedNotification"
	TypeExitAllChannel             = "exitAllChannel"
	TypeSendChannelChatRequest     = "sendChannelChatRequest"
	TypeSendChannelChatResponse    = "sendChannelChatResponse"
	TypeChannelChatNotif           = "channelChatNotif"

	// session attribute
	TypeSetSessionAttributeRequest  = "setSessionAttributeRequest"
	TypeSetSessionAttributeResponse = "setSessionAttributeResponse"

	// Signaling
	TypeSignalingP2PNotif = "signalingP2PNotif"

	// User Metric
	TypeUserMetricRequest  = "userMetricRequest"
	TypeUserMetricResponse = "userMetricResponse"
)

Lobby messaging protocol type

View Source
const SystemDisplayName = "system"

SystemDisplayName is the sender display name for user notification

Variables

This section is empty.

Functions

This section is empty.

Types

type AcceptFriendsNotif

type AcceptFriendsNotif struct {
	FriendID string `json:"friendId"`
}

AcceptFriendsNotif is notification message when someone accept friends request

func (AcceptFriendsNotif) Type

func (AcceptFriendsNotif) Type() string

Type implements Message interface

type AcceptFriendsRequest

type AcceptFriendsRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

AcceptFriendsRequest message command to accept friends request (Request)

func (AcceptFriendsRequest) Type

Type implements Message interface

type AcceptFriendsResponse

type AcceptFriendsResponse struct {
	*BaseResponse
}

AcceptFriendsResponse message command to accept friends request (Response)

func (AcceptFriendsResponse) Type

Type implements Message interface

type BaseRequest

type BaseRequest struct {
	MessageID string
	UserID    string
}

BaseRequest will be expanded by other message types and contains user's ID

func (BaseRequest) Type

func (BaseRequest) Type() string

Type implements Message interface

type BaseResponse

type BaseResponse struct {
	MessageID string
	Code      int
}

BaseResponse will be expanded by other response types and contains HTTP response code

func (BaseResponse) Type

func (BaseResponse) Type() string

Type implements Message interface

type BlockPlayerRequest

type BlockPlayerRequest struct {
	*BaseRequest
	Namespace     string
	BlockedUserID string
}

BlockPlayerRequest is the model of BlockPlayerRequest

func (BlockPlayerRequest) Type

func (BlockPlayerRequest) Type() string

Type implements Message interface

type BlockPlayerResponse

type BlockPlayerResponse struct {
	*BaseResponse
	Namespace     string
	BlockedUserID string
}

BlockPlayerResponse is the model of BlockPlayerResponse

func (BlockPlayerResponse) Type

func (BlockPlayerResponse) Type() string

Type implements Message interface

type CancelFriendsRequest

type CancelFriendsRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

CancelFriendsRequest message command to cancel friends request (Request)

func (CancelFriendsRequest) Type

Type implements Message interface

type CancelFriendsResponse

type CancelFriendsResponse struct {
	*BaseResponse
}

CancelFriendsResponse message command to cancel friends request (Response)

func (CancelFriendsResponse) Type

Type implements Message interface

type CancelMatchmakingRequest

type CancelMatchmakingRequest struct {
	*BaseRequest
	GameMode    string
	IsTempParty bool
}

CancelMatchmakingRequest message model to request matchmaking cancel

func (CancelMatchmakingRequest) Type

Type implements Message interface

type CancelMatchmakingResponse

type CancelMatchmakingResponse struct {
	*BaseResponse
}

CancelMatchmakingResponse message model to reply start matchmaking request

func (CancelMatchmakingResponse) Type

Type implements Message interface

type ChannelChatNotif

type ChannelChatNotif struct {
	From        string
	ChannelSlug string
	Payload     string
	SentAt      time.Time
}

ChannelChatNotif is the response models for sending default chat channel response

func (ChannelChatNotif) Type

func (ChannelChatNotif) Type() string

Type implements Message interface

type ChatMessage

type ChatMessage struct {
	ID         string
	From       string
	To         string
	Payload    string
	ReceivedAt int64
}

ChatMessage contains user's chat

type ClaimDSRequest

type ClaimDSRequest struct {
	Session *Session
	Request *CreateSessionRequest
}

ClaimDSRequest message command to claim a DS (Request)

func (*ClaimDSRequest) String

func (req *ClaimDSRequest) String() string

func (ClaimDSRequest) Type

func (ClaimDSRequest) Type() string

Type implements Message interface

type ClaimSessionRequest

type ClaimSessionRequest struct {
	SessionID string `json:"session_id"`
	Namespace string `json:"-"`
}

ClaimSessionRequest contains request to claim a dedicated server

type Connected

type Connected struct {
	*BaseResponse
	LobbySessionID string
}

Connected contains result of making connection

func (Connected) Type

func (Connected) Type() string

Type implements Message interface

type CreateDSRequest

type CreateDSRequest struct {
	MMResult *MatchmakingResult
}

CreateDSRequest message command to create a DS (Request)

func (*CreateDSRequest) String

func (req *CreateDSRequest) String() string

func (CreateDSRequest) Type

func (CreateDSRequest) Type() string

Type implements Message interface

type CreateRequest

type CreateRequest struct {
	*BaseRequest
}

CreateRequest contains user's create request

func (CreateRequest) Type

func (CreateRequest) Type() string

Type implements Message interface

type CreateResponse

type CreateResponse struct {
	*BaseResponse
	PartyID         string
	LeaderID        string
	Members         string
	Invitees        string
	InvitationToken string
}

CreateResponse contains result of creating party

func (CreateResponse) Type

func (CreateResponse) Type() string

Type implements Message interface

type CreateSessionRequest

type CreateSessionRequest struct {
	SessionID      string                `json:"session_id"`
	Namespace      string                `json:"namespace"`
	GameMode       string                `json:"game_mode"`
	PodName        string                `json:"pod_name"`
	ClientVersion  string                `json:"client_version"`
	Region         string                `json:"region"`
	Configuration  string                `json:"configuration"`
	MatchingAllies []RequestMatchingAlly `json:"matching_allies"`
	Deployment     string                `json:"deployment"`
}

CreateSessionRequest contains request to spawn a new dedicated server

func (*CreateSessionRequest) String

func (req *CreateSessionRequest) String() string

func (*CreateSessionRequest) Validate

func (req *CreateSessionRequest) Validate() error

Validate returns error if any field is missing

type DSNotification

type DSNotification struct {
	Session *Session
	IsOK    bool
	Message string
}

DSNotification is the model of DS status notification

func (DSNotification) Type

func (DSNotification) Type() string

Type implements Message interface

type Disconnected

type Disconnected struct {
	*BaseRequest
	Namespace    string
	ConnectionID string
}

Disconnected contains info of disconnected user

func (Disconnected) Type

func (Disconnected) Type() string

Type implements Message interface

type Error

type Error struct {
	ErrorCode    int    `json:"code"`
	ErrorMessage string `json:"message"`
}

Error is response sent when an error occurs

type ErrorMessage

type ErrorMessage struct {
	*BaseResponse
	Message string
}

ErrorMessage contains info of error

func (ErrorMessage) Type

func (ErrorMessage) Type() string

Type implements Message interface

type ExitAllChannel

type ExitAllChannel struct {
	UserID    string
	Namespace string
}

ExitAllChannel is the request models for join exit all chat channel request

func (ExitAllChannel) Type

func (ExitAllChannel) Type() string

Type implements Message interface

type FriendsPresenceNotif

type FriendsPresenceNotif struct {
	UserID       string
	Availability int
	Activity     string
	LastSeenAt   string
}

FriendsPresenceNotif message command to notify friends

func (FriendsPresenceNotif) Type

Type implements Message interface

type GetFriendshipStatusRequest

type GetFriendshipStatusRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

GetFriendshipStatusRequest message command to get friendship status (Request)

func (GetFriendshipStatusRequest) Type

Type implements Message interface

type GetFriendshipStatusResponse

type GetFriendshipStatusResponse struct {
	*BaseResponse
	FriendshipStatus string `json:"friendshipStatus"`
}

GetFriendshipStatusResponse message command to get friendship status (Response)

func (GetFriendshipStatusResponse) Type

Type implements Message interface

type GetOfflineNotificationRequest

type GetOfflineNotificationRequest struct {
	*BaseRequest
}

GetOfflineNotificationRequest message comment

func (GetOfflineNotificationRequest) Type

Type implements Message interface

type GetOfflineNotificationResponse

type GetOfflineNotificationResponse struct {
	*BaseResponse
}

GetOfflineNotificationResponse message comment

func (GetOfflineNotificationResponse) Type

Type implements Message interface

type Heartbeat

type Heartbeat struct {
	*BaseRequest
}

Heartbeat used for keeping connection alive

func (Heartbeat) Type

func (Heartbeat) Type() string

Type implements Message interface

type InfoRequest

type InfoRequest struct {
	*BaseRequest
}

InfoRequest contains user's info request

func (InfoRequest) Type

func (InfoRequest) Type() string

Type implements Message interface

type InfoResponse

type InfoResponse struct {
	*BaseResponse
	PartyID          string
	LeaderID         string
	Members          string
	Invitees         string
	InvitationToken  string
	CustomAttributes map[string]interface{}
}

InfoResponse contains info of user's lobby state

func (InfoResponse) Type

func (InfoResponse) Type() string

Type implements Message interface

type Invitation

type Invitation struct {
	From            string
	PartyID         string
	InvitationToken string
}

Invitation contains user's invitation to other user

func (Invitation) Type

func (Invitation) Type() string

Type implements Message interface

type InviteNotice

type InviteNotice struct {
	InviterID string
	InviteeID string
}

InviteNotice contains party's invite notice

func (InviteNotice) Type

func (InviteNotice) Type() string

Type implements Message interface

type InviteRequest

type InviteRequest struct {
	*BaseRequest
	FriendID string
}

InviteRequest contains user's invite request

func (InviteRequest) Type

func (InviteRequest) Type() string

Type implements Message interface

type InviteResponse

type InviteResponse struct {
	*BaseResponse
}

InviteResponse contains result of inviting friend to party

func (InviteResponse) Type

func (InviteResponse) Type() string

Type implements Message interface

type JoinDefaultChannelRequest

type JoinDefaultChannelRequest struct {
	*BaseRequest
}

JoinDefaultChannelRequest is the request models for join default chat channel

func (JoinDefaultChannelRequest) Type

Type implements Message interface

type JoinDefaultChannelResponse

type JoinDefaultChannelResponse struct {
	*BaseResponse
	ChannelSlug string `json:"channelSlug"`
}

JoinDefaultChannelResponse is the response models for join default chat channel response

func (JoinDefaultChannelResponse) Type

Type implements Message interface

type JoinNotice

type JoinNotice struct {
	UserID string
}

JoinNotice contains party's join notice

func (JoinNotice) Type

func (JoinNotice) Type() string

Type implements Message interface

type JoinRequest

type JoinRequest struct {
	*BaseRequest
	PartyID         string
	InvitationToken string
}

JoinRequest contains user's join request

func (JoinRequest) Type

func (JoinRequest) Type() string

Type implements Message interface

type JoinResponse

type JoinResponse struct {
	*BaseResponse
	PartyID         string
	LeaderID        string
	Members         string
	Invitees        string
	InvitationToken string
}

JoinResponse contains result of user's join request

func (JoinResponse) Type

func (JoinResponse) Type() string

Type implements Message interface

type KickNotice

type KickNotice struct {
	LeaderID string
	UserID   string
	PartyID  string
}

KickNotice contains party's kicked notice

func (KickNotice) Type

func (KickNotice) Type() string

Type implements Message interface

type KickRequest

type KickRequest struct {
	*BaseRequest
	MemberID string
}

KickRequest contains user's kick request

func (KickRequest) Type

func (KickRequest) Type() string

Type implements Message interface

type KickResponse

type KickResponse struct {
	*BaseResponse
}

KickResponse contains result of kicking member from party

func (KickResponse) Type

func (KickResponse) Type() string

Type implements Message interface

type LeaveNotice

type LeaveNotice struct {
	UserID   string
	LeaderID string
}

LeaveNotice contains party's leave notice

func (LeaveNotice) Type

func (LeaveNotice) Type() string

Type implements Message interface

type LeaveRequest

type LeaveRequest struct {
	*BaseRequest

	// Internal use, to force player leave party on disconnected
	IgnoreUserRegistry bool
}

LeaveRequest contains user's create request

func (LeaveRequest) Type

func (LeaveRequest) Type() string

Type implements Message interface

type LeaveResponse

type LeaveResponse struct {
	*BaseResponse
}

LeaveResponse contains result of creating party

func (LeaveResponse) Type

func (LeaveResponse) Type() string

Type implements Message interface

type ListFriendsPresenceRequest

type ListFriendsPresenceRequest struct {
	*BaseRequest
}

ListFriendsPresenceRequest message command to list user's friends (Request)

func (ListFriendsPresenceRequest) Type

Type implements Message interface

type ListFriendsPresenceResponse

type ListFriendsPresenceResponse struct {
	*BaseResponse
	UserID       []string
	Availability []int
	Activity     []string
	LastSeenAt   []string
}

ListFriendsPresenceResponse message command to list user's friends (Response)

func (ListFriendsPresenceResponse) Type

Type implements Message interface

type ListIncomingFriendsRequest

type ListIncomingFriendsRequest struct {
	*BaseRequest
}

ListIncomingFriendsRequest message command to get list of incoming friends (Request)

func (ListIncomingFriendsRequest) Type

Type implements Message interface

type ListIncomingFriendsResponse

type ListIncomingFriendsResponse struct {
	*BaseResponse
	UserIDs []string
}

ListIncomingFriendsResponse message command to get list of Incoming friends (Response)

func (ListIncomingFriendsResponse) Type

Type implements Message interface

type ListOfFriendsRequest

type ListOfFriendsRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

ListOfFriendsRequest message command to get list of friends (Request)

func (ListOfFriendsRequest) Type

Type implements Message interface

type ListOfFriendsResponse

type ListOfFriendsResponse struct {
	*BaseResponse
	UserIDs []string
}

ListOfFriendsResponse message command to get list of friends (Response)

func (ListOfFriendsResponse) Type

Type implements Message interface

type ListOnlineFriends

type ListOnlineFriends struct {
	*BaseRequest
}

ListOnlineFriends message command to list user's friends

func (ListOnlineFriends) Type

func (ListOnlineFriends) Type() string

Type implements Message interface

type ListOutgoingFriendsRequest

type ListOutgoingFriendsRequest struct {
	*BaseRequest
}

ListOutgoingFriendsRequest message command to get list of Outgoing friends (Request)

func (ListOutgoingFriendsRequest) Type

Type implements Message interface

type ListOutgoingFriendsResponse

type ListOutgoingFriendsResponse struct {
	*BaseResponse
	UserIDs []string
}

ListOutgoingFriendsResponse message command to get list of Outgoing friends (Response)

func (ListOutgoingFriendsResponse) Type

Type implements Message interface

type MatchMakingCancelRequest

type MatchMakingCancelRequest struct {
	Channel string `json:"channel,omitempty"`
	PartyID string `json:"party_id"`
}

MatchMakingCancelRequest is the request for a party to get matched

type MatchMakingRequest

type MatchMakingRequest struct {
	MatchmakingTicket
}

MatchMakingRequest is the request for a party to get matched

type MatchingAlly

type MatchingAlly struct {
	MatchingParties []MatchingParty `json:"matching_parties"`
}

MatchingAlly is the model of a side

type MatchingParty

type MatchingParty struct {
	PartyID         string                 `json:"party_id"`
	PartyAttributes map[string]interface{} `json:"party_attributes"`
	PartyMembers    []PartyMember          `json:"party_members"`
}

MatchingParty contains information about matching party

type MatchingPartyV1

type MatchingPartyV1 struct {
	PartyID      string          `json:"partyId"`
	PartyMembers []PartyMemberV1 `json:"partyMembers"`
}

MatchingPartyV1 contains information about matching party

type MatchmakingNotification

type MatchmakingNotification struct {
	Status                   string
	MatchID                  string
	PartyMemberUserID        []string
	CounterPartyMemberUserID []string
	ReadyDuration            int
}

MatchmakingNotification is the model of matchmaking result

func (MatchmakingNotification) Type

Type implements Message interface

type MatchmakingResult

type MatchmakingResult struct {
	Status         string         `json:"status"`
	PartyID        string         `json:"party_id,omitempty"` // exists only on status cancel
	MatchID        string         `json:"match_id"`
	Channel        string         `json:"channel"`
	Namespace      string         `json:"namespace"`
	GameMode       string         `json:"game_mode"`
	ServerName     string         `json:"server_name"`
	ClientVersion  string         `json:"client_version"`
	Region         string         `json:"region"`
	Joinable       bool           `json:"joinable"`
	MatchingAllies []MatchingAlly `json:"matching_allies"`
	Deployment     string         `json:"deployment"`
}

MatchmakingResult is the result of matchmaking

func (*MatchmakingResult) String

func (res *MatchmakingResult) String() string

type MatchmakingTicket

type MatchmakingTicket struct {
	Channel         string                 `json:"channel,omitempty"`
	PartyID         string                 `json:"party_id"`
	PartyMembers    []PartyMember          `json:"party_members"`
	Priority        int                    `json:"priority"`
	PartyAttributes map[string]interface{} `json:"party_attributes"`
}

MatchmakingTicket contains information about matching party PartyAttributes can contain any of: - server_name: string of preferred server name (for local DS) - client_version: string of preferred client version (for matching with DS version) - latencies: string of JSON map of {"region name string": latency int} containing pairs of region name and latency in ms

type Member

type Member struct {
	UserID string `json:"user_id"`
	Status string `json:"status"`
}

Member store ready status and userID of user

type Message

type Message interface {
	Type() string // Returns the message type
}

Message will be passed around internally

type NotificationMessage

type NotificationMessage struct {
	ID      string
	From    string
	To      string
	Topic   string
	Payload string
	SentAt  int64
}

NotificationMessage contains user notification message to be sent to user

func (NotificationMessage) Type

func (NotificationMessage) Type() string

Type implements Message interface

type NotifyDSRequest

type NotifyDSRequest struct {
	Session        *Session
	MatchingAllies []RequestMatchingAlly
	PartyIDsToSkip []string
	Error          error
}

NotifyDSRequest message command to notify users that DS is ready (Request)

func (NotifyDSRequest) Type

func (NotifyDSRequest) Type() string

Type implements Message interface

type OnlineFriendsResponse

type OnlineFriendsResponse struct {
	*BaseResponse
	UserID []string
}

OnlineFriendsResponse message response to list user's online friends

func (OnlineFriendsResponse) Type

Type implements Message interface

type PartyChatNotif

type PartyChatNotif struct {
	*ChatMessage
}

PartyChatNotif contains user's party chat

func (PartyChatNotif) Type

func (PartyChatNotif) Type() string

Type implements Message interface

type PartyChatRequest

type PartyChatRequest struct {
	*ChatMessage
}

PartyChatRequest contains user's party chat

func (PartyChatRequest) Type

func (PartyChatRequest) Type() string

Type implements Message interface

type PartyChatResponse

type PartyChatResponse struct {
	*BaseResponse
}

PartyChatResponse contains user's party chat

func (PartyChatResponse) Type

func (PartyChatResponse) Type() string

Type implements Message interface

type PartyDataUpdateNotification

type PartyDataUpdateNotification struct {
	PartyID         string
	LeaderID        string
	Namespace       string
	Members         []string
	Invitees        []string
	CustomAttribute map[string]interface{}
	UpdatedAt       int64
}

PartyDataUpdateNotification is the model of PartyDataUpdateNotification

func (PartyDataUpdateNotification) Type

Type implements Message interface

type PartyMember

type PartyMember struct {
	UserID          string                 `json:"user_id"`
	ExtraAttributes map[string]interface{} `json:"extra_attributes"`
}

PartyMember is the member of the party and its predefined attribute

type PartyMemberV1

type PartyMemberV1 struct {
	UserID          string                 `json:"userId"`
	ExtraAttributes map[string]interface{} `json:"extraAttributes"`
}

PartyMemberV1 contains information party member

type PersonalChatHistoryRequest

type PersonalChatHistoryRequest struct {
	*BaseRequest
	FriendID string
}

PersonalChatHistoryRequest list of user's personal chat request

func (PersonalChatHistoryRequest) Type

Type implements Message interface

type PersonalChatHistoryResponse

type PersonalChatHistoryResponse struct {
	*BaseResponse
	FriendID string
	Chat     string
}

PersonalChatHistoryResponse list of user's personal chat response

func (PersonalChatHistoryResponse) Type

Type implements Message interface

type PersonalChatNotif

type PersonalChatNotif struct {
	*ChatMessage
}

PersonalChatNotif is the notif model for incoming chat message

func (PersonalChatNotif) Type

func (PersonalChatNotif) Type() string

Type implements Message interface

type PersonalChatRequest

type PersonalChatRequest struct {
	*ChatMessage
}

PersonalChatRequest contains user's personal chat

func (PersonalChatRequest) Type

func (PersonalChatRequest) Type() string

Type implements Message interface

type PersonalChatResponse

type PersonalChatResponse struct {
	*BaseResponse
}

PersonalChatResponse response model after sending chat request

func (PersonalChatResponse) Type

Type implements Message interface

type PlayerBlockedNotification

type PlayerBlockedNotification struct {
	UserID        string
	BlockedUserID string
}

PlayerBlockedNotification is the model of PlayerBlockedNotification

func (PlayerBlockedNotification) Type

Type implements Message interface

type PlayerUnblockedNotification

type PlayerUnblockedNotification struct {
	UserID          string
	UnblockedUserID string
}

PlayerUnblockedNotification is the model of PlayerUnblockedNotification

func (PlayerUnblockedNotification) Type

Type implements Message interface

type PromoteLeaderRequest

type PromoteLeaderRequest struct {
	*BaseRequest
	NewLeaderUserID string
}

func (PromoteLeaderRequest) Type

type PromoteLeaderResponse

type PromoteLeaderResponse struct {
	*BaseResponse
	PartyID         string
	LeaderID        string
	Members         string
	Invitees        string
	InvitationToken string
}

func (PromoteLeaderResponse) Type

type ReadyConsent

type ReadyConsent struct {
	PartyID     string   `json:"party_id"`
	PartyLeader string   `json:"party_leader"`
	GameMode    string   `json:"game_mode"`
	Members     []Member `json:"members"`
}

ReadyConsent contains information about readyness status in a party party leader was needed to do rematchmaking

type RejectFriendsRequest

type RejectFriendsRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

RejectFriendsRequest message command to reject friends request (Request)

func (RejectFriendsRequest) Type

Type implements Message interface

type RejectFriendsResponse

type RejectFriendsResponse struct {
	*BaseResponse
}

RejectFriendsResponse message command to reject friends request (Response)

func (RejectFriendsResponse) Type

Type implements Message interface

type RejectNotice

type RejectNotice struct {
	LeaderID string
	UserID   string
	PartyID  string
}

RejectNotice contains party's reject notice

func (RejectNotice) Type

func (RejectNotice) Type() string

Type implements Message interface

type RejectRequest

type RejectRequest struct {
	*BaseRequest
	PartyID         string
	InvitationToken string
}

RejectRequest contains user's reject request

func (RejectRequest) Type

func (RejectRequest) Type() string

Type implements Message interface

type RejectResponse

type RejectResponse struct {
	*BaseResponse
	PartyID string
}

RejectResponse contains result of user's reject request

func (RejectResponse) Type

func (RejectResponse) Type() string

Type implements Message interface

type RematchmakingNotif

type RematchmakingNotif struct {
	BanDuration int
}

RematchmakingNotif is the model of rematchmaking notification

func (RematchmakingNotif) Type

func (RematchmakingNotif) Type() string

Type implements Message interface

type RequestFriendsNotif

type RequestFriendsNotif struct {
	FriendID string `json:"friendId"`
}

RequestFriendsNotif message notification when someone requesting friends relation

func (RequestFriendsNotif) Type

func (RequestFriendsNotif) Type() string

Type implements Message interface

type RequestFriendsRequest

type RequestFriendsRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

RequestFriendsRequest message command to request friends (Request)

func (RequestFriendsRequest) Type

Type implements Message interface

type RequestFriendsResponse

type RequestFriendsResponse struct {
	*BaseResponse
}

RequestFriendsResponse message command to request friends (Response)

func (RequestFriendsResponse) Type

Type implements Message interface

type RequestMatchMember

type RequestMatchMember struct {
	UserID string `json:"user_id"`
}

RequestMatchMember is the member of match party

func (*RequestMatchMember) Validate

func (req *RequestMatchMember) Validate() error

Validate returns error if any field is missing

type RequestMatchParty

type RequestMatchParty struct {
	PartyID         string                 `json:"party_id"`
	PartyAttributes map[string]interface{} `json:"party_attributes"`
	PartyMembers    []RequestMatchMember   `json:"party_members"`
}

RequestMatchParty is the matching party of a match

func (*RequestMatchParty) Members

func (req *RequestMatchParty) Members() []string

Members return party member user ID in slice format

func (*RequestMatchParty) Validate

func (req *RequestMatchParty) Validate() error

Validate returns error if any field is missing

type RequestMatchingAlly

type RequestMatchingAlly struct {
	MatchingParties []RequestMatchParty `json:"matching_parties"`
}

RequestMatchingAlly contains party on the same side

func (*RequestMatchingAlly) Validate

func (req *RequestMatchingAlly) Validate() error

Validate returns error if any field is missing

type ResetUserStatusRequest

type ResetUserStatusRequest struct {
	UserID    string
	Namespace string
}

ResetUserStatusRequest request directly from client to reset user status when the client get disconnected

func (ResetUserStatusRequest) Type

Type implements Message interface

type SendChannelChatRequest

type SendChannelChatRequest struct {
	*BaseRequest
	ChannelSlug string
	Payload     string
}

SendChannelChatRequest is the request models for sending chat channel

func (SendChannelChatRequest) Type

Type implements Message interface

type SendChannelChatResponse

type SendChannelChatResponse struct {
	*BaseResponse
}

SendChannelChatResponse is the response models for sending default chat channel response

func (SendChannelChatResponse) Type

Type implements Message interface

type Server

type Server struct {
	PodName               string         `json:"pod_name"`
	ImageVersion          string         `json:"image_version"`
	Namespace             string         `json:"namespace"`
	IP                    string         `json:"ip"`
	AlternateIPs          []string       `json:"alternate_ips"`
	Port                  int            `json:"port"`
	Protocol              string         `json:"protocol"`
	Ports                 map[string]int `json:"ports"`
	Provider              string         `json:"provider"`
	GameVersion           string         `json:"game_version"`
	StatusText            string         `json:"status"`
	LastUpdate            time.Time      `json:"last_update"`
	SessionID             string         `json:"session_id"`
	Deployment            string         `json:"deployment"`
	Region                string         `json:"region"`
	IsOverrideGameVersion bool           `json:"is_override_game_version"`
	CustomAttribute       string         `json:"custom_attribute"`
}

Server represents a DS server currently managed by the service

func (*Server) String

func (s *Server) String() string

type Session

type Session struct {
	ID      string `json:"id"`
	Region  string `json:"region"`
	*Server `json:"Server"`
}

Session represents a game session currently managed by the service

func (*Session) String

func (s *Session) String() string

type SessionResponse

type SessionResponse struct {
	Session *Session `json:"session"`
}

SessionResponse is the response for get server endpoint

type SetReadyConsentNotif

type SetReadyConsentNotif struct {
	MatchID string
	UserID  string
}

SetReadyConsentNotif is the model of set ready consent response

func (SetReadyConsentNotif) Type

Type implements Message interface

type SetReadyConsentRequest

type SetReadyConsentRequest struct {
	*BaseRequest
	MatchID string
}

SetReadyConsentRequest is the model of set ready consent request

func (SetReadyConsentRequest) Type

Type implements Message interface

type SetReadyConsentResponse

type SetReadyConsentResponse struct {
	*BaseResponse
}

SetReadyConsentResponse is the model of set ready consent response

func (SetReadyConsentResponse) Type

Type implements Message interface

type SetSessionAttributeRequest

type SetSessionAttributeRequest struct {
	*BaseRequest
	Namespace string
	Key       string
	Value     string
}

func (SetSessionAttributeRequest) Type

type SetSessionAttributeResponse

type SetSessionAttributeResponse struct {
	*BaseResponse
}

func (SetSessionAttributeResponse) Type

type SetUserStatusRequest

type SetUserStatusRequest struct {
	*BaseRequest
	Availability int    `json:"availability"`
	Activity     string `json:"activity"`
}

SetUserStatusRequest message command to set user status (Request)

func (SetUserStatusRequest) Type

Type implements Message interface

type SetUserStatusResponse

type SetUserStatusResponse struct {
	*BaseResponse
}

SetUserStatusResponse message command to set user status (Response)

func (SetUserStatusResponse) Type

Type implements Message interface

type Shutdown

type Shutdown struct {
	Message string
}

Shutdown contains info of server shutting down

func (Shutdown) Type

func (Shutdown) Type() string

Type implements Message interface

type SignalingP2P

type SignalingP2P struct {
	*BaseRequest
	DestinationID string
	Message       string
}

SignalingP2P is model for signaling for game P2P connection request

func (SignalingP2P) Type

func (SignalingP2P) Type() string

Type implements Message interface

type StartMatchmakingRequest

type StartMatchmakingRequest struct {
	*BaseRequest
	GameMode        string
	Priority        int
	PartyAttributes map[string]interface{} `json:"party_attributes"`
	TempParty       string
	ExtraAttributes string
}

StartMatchmakingRequest message model to start matchmaking The user id should be the leader user ID Priority spans from 0-10 the highest the priority the faster it party will get matched

PartyAttributes can contain any of: - server_name: string of preferred server name (for local DS) - client_version: string of preferred client version (for matching with DS version) - latencies: string of JSON map of {"region name string": latency int} containing pairs of region name and latency in ms

Temp party should contain comma separated user IDs in a temporary party for matchmaking only

func (StartMatchmakingRequest) Type

Type implements Message interface

type StartMatchmakingResponse

type StartMatchmakingResponse struct {
	*BaseResponse
}

StartMatchmakingResponse message model to reply start matchmaking request

func (StartMatchmakingResponse) Type

Type implements Message interface

type SystemComponentsStatus

type SystemComponentsStatus struct {
	Components map[string]bool
}

SystemComponentsStatus is the model of System Components Status

func (SystemComponentsStatus) Type

Type implements Message interface

type UnblockPlayerRequest

type UnblockPlayerRequest struct {
	*BaseRequest
	Namespace       string
	UnblockedUserID string
}

UnblockPlayerRequest is the model of UnblockPlayerRequest

func (UnblockPlayerRequest) Type

Type implements Message interface

type UnblockPlayerResponse

type UnblockPlayerResponse struct {
	*BaseResponse
	Namespace       string
	UnblockedUserID string
}

UnblockPlayerResponse is the model of UnblockPlayerResponse

func (UnblockPlayerResponse) Type

Type implements Message interface

type UnfriendNotif

type UnfriendNotif struct {
	FriendID string `json:"friendId"`
}

UnfriendNotif is notification message when someone unfriend a friend

func (UnfriendNotif) Type

func (UnfriendNotif) Type() string

Type implements Message interface

type UnfriendRequest

type UnfriendRequest struct {
	*BaseRequest
	FriendID string `json:"friendId"`
}

UnfriendRequest message command to unfriends (Request)

func (UnfriendRequest) Type

func (UnfriendRequest) Type() string

Type implements Message interface

type UnfriendResponse

type UnfriendResponse struct {
	*BaseResponse
}

UnfriendResponse message command to unfriends (Response)

func (UnfriendResponse) Type

func (UnfriendResponse) Type() string

Type implements Message interface

type UserMetricRequest

type UserMetricRequest struct {
	*BaseRequest
}

func (UserMetricRequest) Type

func (UserMetricRequest) Type() string

type UserMetricResponse

type UserMetricResponse struct {
	*BaseResponse
	PlayerCount int
}

func (UserMetricResponse) Type

func (UserMetricResponse) Type() string

type WaitForDSRequest

type WaitForDSRequest struct {
	Session *Session
	Request *CreateSessionRequest
}

WaitForDSRequest message command to wait a DS creation (Request)

func (*WaitForDSRequest) String

func (req *WaitForDSRequest) String() string

func (WaitForDSRequest) Type

func (WaitForDSRequest) Type() string

Type implements Message interface

Jump to

Keyboard shortcuts

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