GS2-Matchmaking 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

액션의 조합과 동시 실행

모든 서비스에 공통되는 전제는 트랜잭션 액션의 조합에 정리되어 있습니다. 먼저 그쪽을 읽어 주십시오. 이 절의 나머지는 GS2-Matchmaking 고유의 내용입니다.

GS2-Matchmaking이 트랜잭션에 지정할 수 있는 액션은 1가지이며, 읽기만 수행합니다.

조작같은 행을 겹쳤을 때중첩 너머다른 대상이 되는 경계
참가하고 있음의 검증
VerifyIncludeParticipantByUserId
완전히 같은 검증은 1건으로 묶인다읽기만 하므로 충돌하지 않는다시즌 개더링·검증 타입·대상 사용자

다른 검증 액션과 마찬가지로, 이 액션도 트랜잭션 시작 시점의 시즌 개더링을 봅니다. 같은 트랜잭션 안에서 개더링에 참가한 사용자는 이 판정에서는 아직 참가자가 아닙니다. 그 때문에 참가시킨 뒤 그 참가를 검증하는 흐름을 하나의 트랜잭션으로 수행할 수는 없습니다.

참가가 안쪽 트랜잭션, 예를 들어 추첨의 경품이나 교환의 결과로 이루어지는 경우도 같습니다. GS2-Matchmaking 자체에는 참가를 수행하는 트랜잭션 액션이 없으므로, 참가는 반드시 API나 다른 서비스의 액션이 호출하는 처리로서 일어납니다. 그 트랜잭션이 성립시킨 것을 검증하고 싶은 경우에는 트랜잭션을 나누어 주십시오.

다른 사용자를 검증하는 경우에는 다른 대상이므로 둘 다 판정됩니다.

중첩된 트랜잭션에 주의

이 액션은 아무것도 기록하지 않으므로, 안쪽 트랜잭션에서 도착하는 업데이트와 충돌하는 일은 없습니다. 할 수 없는 것은, 경로와 관계없이 같은 트랜잭션이 수행한 변경을 보는 것입니다.

동시 실행과 재시도

이 액션이 충돌을 반환하는 일은 없습니다. 실패하는 것은 검증 자체가 성립하지 않은 경우뿐이며, 이것은 결과이지 재시도해야 할 오류가 아닙니다.


Verify Action

검증 액션

Gs2Matchmaking:VerifyIncludeParticipantByUserId

사용자 ID를 지정하여 영속 개더링에 사용자 ID가 포함되어 있는지 검증

지정된 사용자가 시즌 개더링에 참가하고 있는지 여부를 검증합니다.

수량 지정 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
seasonNamestring
~ 128자시즌 모델 이름
시즌 모델 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
seasonlong
0 ~ 9223372036854775805시즌
tierlong
0 ~ 9223372036854775805티어
비슷한 랭크의 플레이어를 그룹화하기 위한 티어 레벨입니다.
SeasonModel에서 지정된 GS2-Experience 모델에서의 플레이어 랭크에 따라 결정됩니다.
플레이어는 동일한 티어의 플레이어와만 매칭되어 공평한 대전이 보장됩니다.
seasonGatheringNamestring
UUID~ 128자시즌 게더링명
시즌 게더링 고유의 이름입니다. 영숫자 및 -(하이픈), _(언더스코어), .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
verifyType문자열 열거형
enum {
  “include”,
  “notInclude”
}
검증 종류
정의설명
include시즌 개더링에 지정한 사용자가 포함되어 있음
notInclude시즌 개더링에 지정한 사용자가 포함되지 않음
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Matchmaking:VerifyIncludeParticipantByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "seasonName": "[string]시즌 모델 이름",
        "season": "[long]시즌",
        "tier": "[long]티어",
        "seasonGatheringName": "[string]시즌 게더링명",
        "userId": "[string]사용자ID",
        "verifyType": "[string]검증 종류",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Matchmaking:VerifyIncludeParticipantByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  seasonName: "[string]시즌 모델 이름"
  season: "[long]시즌"
  tier: "[long]티어"
  seasonGatheringName: "[string]시즌 게더링명"
  userId: "[string]사용자ID"
  verifyType: "[string]검증 종류"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("matchmaking").verify.verify_include_participant_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    seasonName="[string]시즌 모델 이름",
    season="[long]시즌",
    tier="[long]티어",
    seasonGatheringName="[string]시즌 게더링명",
    userId="[string]사용자ID",
    verifyType="[string]검증 종류",
    timeOffsetToken="[string]타임 오프셋 토큰",
})