Skip to main content

Lobby using WebSockets

Last updated on October 26, 2023

Overview

The AccelByte WebSocket Messaging protocol is a simple messaging protocol focusing on fast object-message conversion on the server side and simplicity on the client side. This protocol is a subset of the YAML data serialization language.

Basic structure

The structure supported by this protocol is string key-value object. The keys and the values are separated by a colon followed by a white space. Objects are separated by newlines.

keyA: [valueA1valueA2valueAn]\n
keyB: [valueB1valueB2valueBn]

Each message must come with a type object defining the message type.

type:messageType\n
keyA:valueA\n
keyB:[valueB1,valueB2,valueBn,]

Date-time-based values must be represented by date time ISO-8601 up to the second field.

type:messageType\n
keyA:valueA\n
keyB:[valueB1,valueB2,valueBn,]\n
time:2018-11-09T03:51:18Z

Message types

There are three types of messages in the Lobby server implementation.

Request

Request message is a message from client to server. The request message type should have a "-Request" suffix. A request message must have an object ID generated by the client and object ID must be placed after the object type. Each request must be responded to by the server with the same object ID. The Object type must be at the top of any object.

type:fooRequest\n
id:878a0f51bedd4825cf46827fd1478224\n
keyA:valueA\n
keyB:[valueB1,valueB2,valueBn,]

Response

Response message is message from server to client corresponding to a client's request. A response message type should have a "-Response" suffix and the response object ID must correspond with the request. Response must have object code identifying response code. Successful requests must be responded to with status 0. Unsuccessful requests must be responded to with a non-0 status codepreferably an error event ID. When the code is non-0, the other field should be ignored.

type:fooResponse\n
id:878a0f51bedd4825cf46827fd1478224\n
code:0\n
keyA:valueA\n
keyB:[valueB1,valueB2,valueBn,]

Notification

A notification is a message sent from the server to a client without a user request. The notification message type should have a "-Notif" suffix.

type:fooNotif\n
keyA:valueA\n
keyB:[valueB1,valueB2,valueBn,]

Lobby Server Usage

Party

CommandRequest PayloadResponse PayloadUnrealUnityOSS
Get current party infotype: partyInfoRequest\n id: message123type: partyInfoResponse\n id: message123\n code: 0\n partyID: party123\n leaderID: user123\n members: [user123,user456,]\n invitees: user789\n invitationToken: invtoken123Lobby::SendInfoPartyRequest()GetPartyInfo(ResultCallback<PartyInfo> callback)*cannot be called externally, Party info will be called automatically in Create, Join or Restore party.
Create new partytype: partyCreateRequest\n id: message123type: partyCreateResponse\n id: message123\n code: 0\n partyID: party123\n leaderID: user123\n members: user123\n invitees:\n invitationToken: invtoken123Lobby::SendCreatePartyRequest()CreateParty(ResultCallback<PartyCreateResponse> callback)FOnlinePartySystemAccelByte::CreateParty(const FUniqueNetId& LocalUserId, const FOnlinePartyTypeId PartyTypeId, const FPartyConfiguration& PartyConfig, const FOnCreatePartyComplete& Delegate)
Leave current partytype: partyLeaveRequest\n id: message123type: partyLeaveResponse\n id: message123\n code: 0Lobby::SendLeavePartyRequest()LeaveParty(ResultCallback callback)FOnlinePartySystemAccelByte::LeaveParty(const FUniqueNetId& LocalUserId, const FOnlinePartyId& PartyId, const FOnLeavePartyComplete& Delegate)
Party leave noticetype: partyLeaveNotif\n userID: user345\n leaderID: user123SetPartyMemberLeaveNotifDelegate(const FPartyMemberLeaveNotif& OnPartyMemberLeaveNotice)LeaveFromPartyN/A
Invite user to partytype: partyInviteRequest\n id: message123 friendID: user456type: partyInviteResponse\n id: message123\n code: 0Lobby::SendInviteToPartyRequest(const FString& UserId)InviteToPartyDetailedCallback(string userId, ResultCallback<PartyInviteResponse> callback)FOnlinePartySystemAccelByte::SendInvitation(const FUniqueNetId& LocalUserId, const FOnlinePartyId& PartyId, const FPartyInvitationRecipient& Recipient, const FOnSendPartyInvitationComplete& Delegate /= FOnSendPartyInvitationComplete()/)
Invitation noticetype: partyInviteNotif\n inviterID: user123\n inviteeID: user456SetPartyInviteNotifDelegate(const FPartyInviteNotif& OnPartyInviteNotif)N/AOnPartyInvitesChanged
Being invitedtype: partyGetInvitedNotif\n from: user123\n partyID: party123\n invitationToken: invtoken123SetPartyGetInvitedNotifDelegate(const FPartyGetInvitedNotif& OnInvitePartyGetInvitedNotice)InvitedToPartyOnPartyInviteReceivedEx
Accept Invitationtype: partyJoinRequest\n id: message123\n partyID: party123\n invitationToken: invtoken123type: partyJoinResponse\n id: message123\n code: 0\n partyID: party123\n leaderID: user123\n members: [user123,user456,]\n invitees:\n invitationToken: invtoken123Lobby::SendAcceptInvitationRequest(const FString& PartyId , const FString& InvitationToken)public void JoinParty(string partyID,string invitationToken, ResultCallback<PartyInfo> callback)FOnlinePartySystemAccelByte::JoinParty(const FUniqueNetId& LocalUserId, const IOnlinePartyJoinInfo& OnlinePartyJoinInfo, const FOnJoinPartyComplete& Delegate)
Invitation being acceptedtype: partyJoinNotif\n userID: user456SetPartyJoinNotifDelegate(const FPartyJoinNotif& OnInvitePartyJoinNotice)JoinedPartyN/A * will automatically add new player to local party map
Reject Invitationtype: partyRejectRequest\n id: message123\n partyID: party123\n invitationToken: invtoken123Type: partyRejectResponse\n id: message123\n code: 0SendRejectInvitationRequest(const FString& PartyId, const FString& InvitationToken)RejectPartyInvitation(string partyId,string invitationToken, ResultCallback<PartyRejectResponse> callback)FOnlinePartySystemAccelByte::RejectInvitation(const FUniqueNetId& LocalUserId, const FUniqueNetId& SenderId)
Invitation Being RejectedType: partyRejectNotif\n id: message123\n code: 0\n partyID: party123\n rejectedID: user123\n members: [user123,user456,]SetPartyInvitationRejectedNotifDelegate(const FPartyRejectNotif& OnInvitePartyRejectNotice)RejectedPartyInvitationN/A
Kick membertype: partyKickRequest\n id: message123\n memberID: user456type: partyKickResponse\n id: message123\n code: 0Lobby::SendKickPartyMemberRequest(const FString& UserId)KickPartyMemberDetailedCallback(string userId, ResultCallback<KickResponse> callback)FOnlinePartySystemAccelByte::KickMember(const FUniqueNetId& LocalUserId, const FOnlinePartyId& PartyId, const FUniqueNetId& TargetMemberId, const FOnKickPartyMemberComplete& Delegate)
Being kickedtype: partyKickNotif\n leaderID: user123\n userID: user456\n partyID: party123SetPartyKickNotifDelegate(const FPartyKickNotif& OnInvitePartyKickedNotice)KickedFromPartyOnPartyExited
Generate party codetype: partyGenerateCodeRequest\n id: message123\ntype: partyGenerateCodeResponse\n id: message123\n partyCode: partycode123 code: 0Lobby::SendPartyGenerateCodeRequest()GeneratePartyCode(ResultCallback<PartyGenerateCodeResponse> callback)N/A
Get party codetype: partyGetCodeRequest\n id: message123\ntype: partyGetCodeResponse\n id: message123\n partyCode: partycode123 code: 0Lobby::SendPartyGetCodeRequest()GetPartyCode(ResultCallback<PartyGetCodeResponse> callback)* Cannot be called externally, will be called internally on Create, Restore or promoted to leader To get local cached party code use bool FOnlinePartySystemAccelByte::GetPartyCode(FString& Output, const FUniqueNetId& LocalUserId, const FOnlinePartyId& PartyId)
Delete party codetype: partyDeleteCodeRequest\n id: message123\ntype: partyDeleteCodeResponse\n id: message123\n code: 0Lobby::SendPartyDeleteCodeRequest()DeletePartyCode(ResultCallback callback)N/A
Join party via codetype: partyJoinViaCodeRequest\n id: message123\n partyCode: partyCode123\ntype: partyJoinViaCodeResponse\n id: message123\n code: 0\n partyID: party123\n leaderID: user123\n members: [user123,user456,]\n invitees:[user123,user456,]\n invitationToken: invtoken123Lobby::SendPartyJoinViaCodeRequest(const FString& partyCode)JoinPartyViaCode(string invitationPartyCode, ResultCallback<PartyInfo> callback)bool FOnlinePartySystemAccelByte::JoinParty(const FUniqueNetId& LocalUserId, const FString& InPartyCode, const FOnJoinPartyComplete& Delegate)
Promote leadertype: partyPromoteLeaderRequest\n id: message123\n newLeaderUserId: user123\ntype: partyPromoteLeaderResponse\n id: message123\n code: 0\n partyID: party123\n leaderID: user123\n members: [user123,user456,]\n invitees:[user123,user456,]\n invitationToken: invtoken123Lobby::SendPartyPromoteLeaderRequest(const FString& UserId)PromotePartyLeader(string userId, ResultCallback<PartyPromoteLeaderResponse> callback)Promote game session leader bool FOnlineSessionV2AccelByte::PromoteGameSessionLeader(const FUniqueNetId& LocalUserId, const FName& SessionName,const FUniqueNetId& PlayerIdToPromote) === Promote party session leader bool FOnlineSessionV2AccelByte::PromotePartySessionLeader(const FUniqueNetId& LocalUserId, const FName& SessionName, const FUniqueNetId& PlayerIdToPromote, const FOnPromotePartySessionLeaderComplete& Delegate)
Party data update noticetype: partyDataUpdateNotif\n partyID: party123\n leader: user123\n members: [user123,user456,]\n invitees:[user123,user456,]\n custom_attribute:{ }\n updatedAt: 123123SetPartyDataUpdateNotifDelegate(FPartyDataUpdateNotif OnPartyDataUpdateNotif)PartyDataUpdateNotifN/A
Party member connect noticeSetPartyMemberConnectNotifDelegate(FPartyMemberConnectNotif OnPartyMemberConnectNotif)N/AOnMemberConnectionStatusChanged
Party member disconnect noticeSetPartyMemberDisconnectNotifDelegate(FPartyMemberDisconnectNotif OnPartyMemberDisconnectNotif)N/AOnMemberConnectionStatusChanged
Send party notificationLobby::SendNotificationToPartyMember(const FString& Topic , const FString& Payload)SendNotificationToPartyMember(string topic, string payload, ResultCallback<PartySendNotifResponse> callback )N/A
Get Party noticeSetPartyNotifDelegate(FPartyNotif OnPartyNotif)PartyNotifN/A

Chat V1

CommandRequest PayloadResponse PayloadUnrealUnityOSS
Send personal chattype: personalChatRequest\n id: message123\n to: user456\n payload: content 123type: personalChatResponse\n id: message123\n code: 0Lobby::SendPrivateMessage(const FString& UserId , const FString& Message)SendPersonalChat(string userId, string chatMessage, ResultCallback callback)N/A
Receive personal chattype: personalChatNotif\n id: message123\n from: user123\n to: user456\n payload: content 123\n receivedAt: 2018-11-25T23:45:05ZSetPrivateMessageNotifDelegate(FPersonalChatNotif OnPersonalChatNotif)PersonalChatReceivedN/A
Send party chattype: partyChatRequest\n id: message123\n payload: content 123type: partyChatResponse\n id: message123\n code: 0Lobby::SendPartyMessage(const FString& Message)SendPartyChat(string chatMessage, ResultCallback callback)N/A
Receive party chattype: partyChatNotif\n id: message123\n from: user123\n to: user456\n payload: content 123\n receivedAt: 2018-11-25T23:45:05ZSetPartyChatNotifDelegate(FPartyChatNotif OnPersonalChatNotif)PartyChatReceivedN/A
Join default chat channeltype: joinDefaultChannelRequest\n id: message123\ntype: joinDefaultChannelRequest\n id: message123\n channelSlug: slugLobby::SendJoinDefaultChannelChatRequest()JoinDefaultChatChannel( ResultCallback<ChatChannelSlug> callback )N/A
Send channel chattype: sendChannelChatRequest\n id: message123\n channelSlug: %s\n payload: %s\ntype: sendChannelChatResponse\n id: message123\n code: 0\n message: message123Lobby::SendChannelMessage(const FString& Message)SendChannelChat( string chatMessage, ResultCallback callback )N/A
Channel chat notiftype: channelChatNotif\n from: user123\n channelSlug: slug\n payload: message123\n sentAt: 123123\nSetChannelMessageNotifDelegate(FChannelChatNotif OnChannelMessageNotif)ChannelChatReceivedN/A

Friends

CommandRequest PayloadAsync Response PayloadUnrealUnity
Request Friendtype: requestFriendsRequest\n id: message123\n friendId: user123type: requestFriendsResponse\n id: message123\n code: 0Lobby::RequestFriend(FString UserId)RequestFriend(string userId, ResultCallback callback)
Request Friends By PublicIDtype: RequestFriendsByPublicID\nLobby::RequestFriendByPublicId(FString PublicId)RequestFriendByPublicId(string publicId, ResultCallback callback)
Friend request notificationtype: requestFriendsNotif\n friendId: user123SetOnIncomingRequestFriendsNotifDelegate(const FRequestFriendsNotif& OnRequestFriendsNotif)OnIncomingFriendRequest
Unfriendtype: unfriendRequest\n id: message123\n friendId: user123type: unfriendResponse\n id: message123\n code: 0Lobby::Unfriend(FString UserId)Unfriend(string userId, ResultCallback callback)
List of Friends Request V2type: ListFriendsRequestV2\n id: message123N/AN/A
List outgoing friend requesttype: listOutgoingFriendsRequest\n id: message123type: listOutgoingFriendsResponse\n id: message123\n code: 0\n friendsId: [user123,user456,]\nLobby::ListOutgoingFriends()ListOutgoingFriends(ResultCallback<Friends> callback)
Cancel outgoing friend requesttype: cancelFriendsRequest\n id: message123\n friendId: user123type: cancelFriendsResponse\n id: message123\n code: 0Lobby::CancelFriendRequest(FString UserId)CancelFriendRequest(string userId, ResultCallback callback)
List incoming friend requesttype: listIncomingFriendsRequest\n id: message123type: listIncomingFriendsResponse\n id: message123\n code: 0\n friendsId: [user123,user456,]Lobby::ListIncomingFriends()ListIncomingFriends(ResultCallback<Friends> callback)
List Incoming Friends With Timetype: ListIncomingFriendsWithTimet\nLobby::ListIncomingFriendsWithTime()ListIncomingFriendsWithTime(ResultCallback<FriendsWithTimestamp> callback)
List Outgoing Friends With Timetype: ListOutgoingFriendsWithTimet\nLobby::ListOutgoingFriendsWithTime()ListOutgoingFriendsWithTime(ResultCallback<FriendsWithTimestamp> callback)
Accept incoming friend requesttype: acceptFriendsRequest\n id: message123\n friendId: user123type: acceptFriendsResponse\n id: message123\n code: 0Lobby::AcceptFriend(FString UserId)AcceptFriend(string userId, ResultCallback callback)
Friends acceptance notificationtype: acceptFriendsNotif\n friendId: user123SetOnFriendRequestAcceptedNotifDelegate(const FAcceptFriendsNotif& OnAcceptFriendsNotif)FriendRequestAccepted
Reject incoming friend requesttype: rejectFriendsRequest\n id: message123\n friendId: user123type: rejectFriendsResponse\n id: message123\n code: 0Lobby::RejectFriend(FString UserId)RejectFriend(string userId, ResultCallback callback)
List current friendstype: listOfFriendsRequest\n id: message123type: listOfFriendsResponse\n id: message123\n code: 0\n friendsId: [user123,user456,]Lobby::LoadFriendsList()LoadFriendsList(ResultCallback<Friends> callback)
Get friendship statustype: getFriendshipStatusRequest\n id: message123\n friendId: user123type: getFriendshipStatusResponse id: message123 code: 0 friendshipStatus: 3Lobby::GetFriendshipStatus(FString UserId)GetFriendshipStatus(string userId, ResultCallback<FriendshipStatus> callback)
Unfriend notiftype: unfriendNotif\n friendId: user123SetOnUnfriendNotifDelegate(const FUnfriendNotif& OnUnfriendNotif)OnUnfriend
Cancel friend notiftype: cancelFriendsNotif\n userId: user123SetOnCancelFriendsNotifDelegate(const FCancelFriendsNotif& OnCancelFriendsNotif)FriendRequestCanceled
Reject friend notiftype: rejectFriendsNotif\n userId: user123SetOnRejectFriendsNotifDelegate(const FRejectFriendsNotif& OnRejectFriendsNotif)FriendRequestRejected

Presence

CommandRequest PayloadAsync Response PayloadUnrealUnityOSS
Set user statustype: setUserStatusRequest\n id: message123\n availability: 1\n activity: in party looking for memberstype: setUserStatusResponse\n id: message123\n code: 0Lobby::SendSetPresenceStatus(const EAvailability Availability , const FString& Activity)SetUserStatus(UserStatus status, string activity, ResultCallback callback)void FOnlinePresenceAccelByte::SetPresence(const FUniqueNetId& User, const FOnlineUserPresenceStatus& Status, const FOnPresenceTaskCompleteDelegate& Delegate)
Set user status v2type: setUserStatusRequestv2\nN/AN/A
Notify statustype: userStatusNotif\n userID: 123\n availability: 1\n activity: idleSetUserPresenceNotifDelegate(FFriendStatusNotif OnUserPresenceNotif)FriendsStatusChangedOnPresenceReceived
List all friends presencetype: friendsStatusRequest\n id: message123type: friendsStatusResponse\n id: message123\n code: 0\n friendsId: [uid1,uid2,uid3,]\n availability: [1,2,1,]\n activity: [playing mahjong ultra,null,in deatmatch shootergame,]\n lastSeenAt: [2018-09-30T06:42:57Z,2018-11-30T06:42:57Z,2018-10-21T06:42:57Z,]Lobby::SendGetOnlineFriendPresenceRequest()ListFriendsStatus(ResultCallback<FriendsStatus> callback)N/A

Block Player

CommandRequest PayloadAsync Response PayloadUnrealUnity
Block playertype: blockPlayerRequest\n id: message123\n userId: user123\n blockedUserId: user456\n namespace: sdktesttype: blockPlayerResponse\n id: message123\n code: 0\n namespace: ns\n blockedUserId: user123Lobby::BlockPlayer(const FString& UserId)BlockPlayer(string userId, ResultCallback<BlockPlayerResponse> callback)
Get Blocked Playertype: GetBlockedPlayer\n*used REST API*used REST API
Block player notiftype: blockPlayerNotif userId: user123\n blockedUserId: user456\nSetBlockPlayerNotifDelegate(FBlockPlayerNotif OnBlockPlayerNotif)PlayerBlockedNotif
Unblock playertype: unblockPlayerRequest\n id: message123\n userId: user123\n unblockedUserId: user456\n namespace: nstype: unblockPlayerResponse\n id: friends-5358\n code: 0\n namespace: ns\n unblockedUserId: user456\nLobby::UnblockPlayer(const FString& UserId)UnblockPlayer(string userId, ResultCallback<UnblockPlayerResponse> callback)
Unblock player notiftype: unblockPlayerNotif userId: user123\n unblockedUserId: user456\nSetUnblockPlayerNotifDelegate(FUnblockPlayerNotif OnUnblockPlayerNotif)PlayerUnblockedNotif

Notifications

Being sent notificationtype: messageNotif\n subject: updateNotification\n from: system\n to: user123\n topic: 1111\n payload: message content 123\n sentAt: 2018-11-25T23:45:05ZSetMessageNotifDelegate(const FMessageNotif& OnNotificationMessage)OnNotificationUsed only to print log internally
Sent ban notificationtype: userBannedNotification\n id: message123\n code: 12002\n userId: user123\n ban: BAN-TYPE\n reason: BAN-REASON\n endDate: 2022-05-11 16:21:36.688 +0000 UTC\n enable: trueSetUserBannedNotificationDelegate(FUserBannedNotification OnUserBannedNotification)UserBannedNotificationN/A
Sent unban notificationtype: userUnbannedNotification\n id: message123\n code: 12002\n userId: user123\n ban: BAN-TYPE\n reason: BAN-REASON\n endDate: 2022-05-11 16:21:36.688 +0000 UTC\n enable: falseSetUserUnbannedNotificationDelegate(FUserUnbannedNotification OnUserUnbannedNotification)UserUnbannedNotificationN/A

Matchmaking v1

CommandRequest PayloadAsync Response PayloadUnrealUnityOSS
Start matchmakingtype: startMatchmakingRequest\n id: message123\n gameMode: default\n partyId: party123\n memberId: [user1,user2,user3,]type: startMatchmakingResponse\n id: message123\n code: 0Lobby::SendStartMatchmaking(const FString& GameMode, const FMatchmakingOptionalParams& OptionalParams)StartMatchmaking(string gameMode, MatchmakingOptionalParam param, ResultCallback<MatchmakingCode> callback)bool FOnlineSessionV1AccelByte::StartMatchmaking(const TArray<TSharedRef<const FUniqueNetId>>& LocalPlayers, FName SessionName, const FOnlineSessionSettings& NewSessionSettings, TSharedRef<FOnlineSessionSearch>& SearchSettings)
Cancel matchmakingtype: cancelMatchmakingRequest\n id: message123\n partyId: party123type: cancelMatchmakingResponse\n id: message123\n code: 0Lobby::SendCancelMatchmaking(FString GameMode , bool IsTempParty)CancelMatchmaking(string gameMode, bool isTempParty, ResultCallback<MatchmakingCode> callback)bool FOnlineSessionV1AccelByte::CancelMatchmaking(int32 SearchingPlayerNum, FName SessionName)
Clear Matchmaking Requesttype: ClearMatchmakingRequest\nN/AN/AN/A
Matchmaking notificationtype: matchmakingNotif\n status: <start / timeout / cancel / done / unavailable> \n matchId: match123 partyMember: [user1,user2,user3,user4,user5,] counterPartyMember: [user6,user7,user8,user9,user10,]SetMatchmakingNotifDelegate(FMatchmakingNotif OnMatchmakingNotification)MatchmakingCompletedIf matchmaking status == start OnMatchmakingStarted If matchmaking status == Cancel OnCancelMatchmakingComplete If matchmaking status == Done OnReadyConsentRequested If matchmaking status == Timeout OnMatchmakingFailed Other status OnMatchmakingFailed
Set ready consenttype: setReadyConsentRequest\n id: message123\n matchid: match123type: setReadyConsentResponse\n id: message123\n code: 0Lobby::SendReadyConsentRequest(FString MatchId)ConfirmReadyForMatch(string matchId, ResultCallback callback)void FOnlineSessionV1AccelByte::SendReady(int32 LocalUserNum, const FString& MatchId, const FOnSendReadyConsentComplete& Delegate)
Set ready consent notiftype: setReadyConsentNotif\n matchId: match123\n userId: user123\nSetReadyConsentNotifDelegate(FReadyConsentNotif OnReadyConsentNotification)ReadyForMatchConfirmedN/A
Set Reject Consenttype: setRejectConsentRequest\nid: message123\n matchid: match123type: setRejectConsentResponse\n id: message123\n code: 0\n matchId: id123Lobby::SendRejectConsentRequest(FString MatchId)RejectMatch(string matchId, ResultCallback callback)N/A
Set reject consent notiftype: setRejectConsentNotif\nmatchId: id123\nuserId: id345SetRejectConsentNotifDelegate(FRejectConsentNotif OnRejectConsentNotification)MatchRejectedN/A
Rematchmaking notiftype: rematchmakingNotif\n banDuration: 0SetRematchmakingNotifDelegate(FRematchmakingNotif OnRematchmakingNotification)RematchmakingNotifN/A
Ds Notiftype: dsNotif\n matchId: match123\n namespace: ns\n podName: podname123\n region: region\n imageVersion: ver123\n ip: 0.0.0.0\n alternateIPs: \n port: 77777\n ports: {"custom":30847, "custom2":23246}\n protocol: udp\n serverVersion: version123\n provider: provider\n status:< CREATING / READY / BUSY >\n deployment: deployment\n customAttribute: attrb123\n isOK: true\n message: messageSetDsNotifDelegate(FDsNotif OnDsNotification)DSUpdatedOnMatchmakingComplete
Create DStype: createDSRequest id: message123\n matchId: match123\n gameMode: mode123\n serverName: server1234\n clientVersion: ver123\n region: region123\n deployment: deployment123\ntype: createDSResponse\n id: message123\n code: 0Lobby::RequestDS(FString const& SessionID , FString const& GameMode , FString const& ClientVersion , FString const& Region , FString const& Deployment , FString const& ServerName)RequestDS(CustomDsCreateRequest request)N/A
note

A canceled match invalidates startMatchmakingRequest response.

Create DS will trigger DS Notif on success.

Signaling P2P

CommandRequest PayloadAsync Response PayloadUnrealUnityOSS
Send Signalingtype: signalingP2PNotif\n id: message123\n destinationId: user123\n message: message123type: signalingP2PNotif\n id: message123\n destinationId: user123\n message: message123Lobby::SendSignalingMessage(const FString& UserId, const FString& Message)SendSignalingMessage(string userId, string message)N/A

Session Attribute

CommandRequest PayloadAsync Response PayloadUnrealUnity
Set session attributetype: setSessionAttributeRequest\n id: message123\n namespace: ns\n key: key123\n value: value123type: setSessionAttributeResponse\n id: message123\n code: 0Lobby::SetSessionAttribute(const FString& Key , const FString& Value)SetSessionAttribute( string key, string value, ResultCallback callback )
Get session attributetype: getSessionAttributeRequest\n id: message123\n namespace: ns\n key: key123type: getSessionAttributeResponse\n id: message123\n code: 0\n value: value123Lobby::GetSessionAttribute(const FString& Key)GetSessionAttribute(string key, ResultCallback<GetSessionAttributeResponse> callback)
Get all session attributetype: getAllSessionAttributeRequest\n id: message123\n namespace: nstype: getAllSessionAttributeResponse\n id: message123\n code: 0\n attributes: {"key": "value", "key1": "value1"}Lobby::GetAllSessionAttribute()GetSessionAttributeAll(ResultCallback<GetSessionAttributeAllResponse> callback)

Refresh Token

CommandRequest PayloadAsync Response PayloadUnrealUnity
Refresh Tokentype: refreshTokenRequest\n id: message123\n token: token123type: refreshTokenResponse\n id: message123\n code: 0Lobby::RefreshToken(const FString& AccessToken)RefreshToken( string newAccessToken, ResultCallback callback )

Error Notifications

CommandRequest PayloadAsync Response PayloadUnrealUnity
Error Notiftype: errorNotif\n code: 429\n message: message123SetErrorNotifDelegate(FErrorNotif OnErrorNotif)ErrorNotification