Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UserAgent

GameAnvil 서버의 Space Node와 관련된 작업을 담당

로그인(Login()), 로그아웃(Logout()) 및 방 관리 등 기본 기능을 제공하며, 서버 구현에 따라 사용자 정의 기능을 추가적으로 제공

Connector.CreateUserAgent() 함수로 새로운 유저 에이전트를 생성

서비스 이름과 서브아이디로 구분되는 여러개의 유저 에이전트를 생성할 수 있으며 각 유저 에이전트는 독립적으로 사용 가능

생성된 유저 에이전트는 커넥터에서 내부적으로 관리되며 Connector.GetUser()함수로 각 에이전트 객체에 접근 가능

UserAgent가 제공하는 기본 기능은 모두 비동기 함수를 통해 제공하며 기능의 결과를 얻기 위한 두 가지 방식이 존재

리스너나 대리자를 미리 등록해 놓고 결과에 대한 알림을 받는 방법과 기능을 사용 할 때 알림을 받을 대리자를 같이 전달하는 방법의 두 가지 방식 제공

두 가지 방법을 혼용해 사용하는 것이 가능, 리스너나 대리자는 여러 개 등록 가능

Hierarchy

  • UserAgent

Implements

Index

Methods

AddListener

  • IUserListener를 상속받은 유저리스너를 등록

    Parameters

    • listener: IUserListener

      IUserListener를 상속받은 유저리스너

    Returns void

AddOnError

  • AddOnError(callback: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): void

ContainsCallback

  • ContainsCallback(resMsgId: number, callback?: (agent: UserAgent, packet: Packet) => void): boolean
  • ContainsCallback<T>(message: {}, callback?: (agent: UserAgent, msg: T) => void): boolean
  • 메세지 아이디에 대한 콜백이 등록되어있는지 확인

    Parameters

    • resMsgId: number

      확인할 패킷의 메세지 아이디

    • Optional callback: (agent: UserAgent, packet: Packet) => void

      입력 할 경우 입력한 콜백의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부

    Returns boolean

  • 특정 메세지에 대한 콜백이 등록되어있는지 확인

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      확인할 메세지

    • Optional callback: (agent: UserAgent, msg: T) => void

      입력 할 경우 입력한 콜백의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부

    Returns boolean

ContainsListener

  • 유저리스너가 등록되었는지 확인

    Parameters

    • Optional listener: IUserListener

      확인할 유저리스너. 입력 할 경우 입력한 유저리스너의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부

    Returns boolean

ContainsOnError

  • ContainsOnError(callback?: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): boolean
  • 오류발생시 호출될 콜백이 등록되었는지 확인

    Parameters

    • Optional callback: (agent: UserAgent, errorCode: ErrorCode, command: string) => void

      오류발생시 호출될 콜백. 입력 할 경우 입력한 콜백의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부

    Returns boolean

CreateRoom

  • 임의의 방을 생성하고 해당 방에 입장

    Parameters

    • roomType: string

      생성할 방의 룸타입

    • roomName: string

      생성할 방의 이름

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeCreateRoom, roomId: number, roomName: string, payload: Payload) => void

      방 생성 결과를 전달 받아 처리 할 콜백

    Returns void

CreateRoomAsync

  • 임의의 방을 생성하고 해당 방에 입장

    CreateRoom()의 비동기 버전

    Parameters

    • roomType: string

      생성할 방의 룸타입

    • roomName: string

      생성할 방의 이름

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<CreateRoomPromise>

    요청 결과

GetAccountId

  • GetAccountId(): string
  • 인증시 사용한 어카운트아이디를 반환

    Returns string

    인증시 사용한 어카운트아이디

GetAllChannelCountInfo

  • 접속중인 서비스에 있는 모든 채널의 유저와 방의 개수를 요청

    서버에서 지원할 경우 사용할 수 있음

    Parameters

    Returns void

  • 특정 서비스에 있는 모든 채널의 유저와 방의 개수를 요청

    서버에서 지원할 경우 사용할 수 있음

    Parameters

    Returns void

GetChannelId

  • GetChannelId(): string
  • 로그인한 체널의 채널아이디 반환

    Returns string

    로그인한 체널아이디

GetServiceName

  • GetServiceName(): string
  • 로그인한 서비스이름을 반환

    Returns string

    로그인한 서비스이름

GetSubId

  • GetSubId(): number
  • 로그인한 서브아이디를 반환

    Returns number

    로그인한 서브아이디

GetUserData

  • GetUserData(): any
  • SetUserData()로 설정한 임의의 데이터를 반환

    Returns any

    설정된 임의의 데이터

GetUserId

  • GetUserId(): number
  • 로그인한 유저아이디를 반환

    Returns number

    로그인한 유저아이디

GetUserType

  • GetUserType(): string
  • 로그인한 유저타입을 반환

    Returns string

    로그인한 유저타입

IsJoinedRoom

  • IsJoinedRoom(): boolean
  • 방에 입장했는지 여부를 반환

    Returns boolean

    방에 입장했을 경우 true, 아닐경우 false

IsLogin

  • IsLogin(): boolean
  • 로그인 여부를 확인

    Returns boolean

    로그인 한경우 true, 아닐경우 false

IsMatchInProgress

  • IsMatchInProgress(): boolean
  • 유저 또는 파티 매칭 진행 여부를 확인

    Returns boolean

    유저 또는 파티 매칭이 진행중인 경우 true, 아닐경우 false

IsMatchPartyInProgress

  • IsMatchPartyInProgress(): boolean
  • 파티 매칭 진행 여부를 확인

    Returns boolean

    파티 매칭이 진행중인 경우 true, 아닐경우 false

IsMatchUserInProgress

  • IsMatchUserInProgress(): boolean
  • 유저 매칭 진행 여부를 확인

    Returns boolean

    유저 매칭이 진행중인 경우 true, 아닐경우 false

JoinRoom

  • 지정한 룸아이디의 방에 입장

    지정한 룸아이디의 방이 없을 경우 실패

    Parameters

    • roomId: number

      입장하고자 하는 룸아이디

    • roomType: string

      입장할 방의 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeJoinRoom, roomId: number, roomName: string, payload: Payload) => void

      방 입장 결과를 전달받아 처리 할 콜백

    Returns void

JoinRoomAsync

  • 지정한 룸아이디의 방에 입장

    지정한 룸아이디의 방이 없을 경우 실패

    JoinRoom()의 비동기 버전

    Parameters

    • roomId: number

      입장하고자 하는 방의 아이디

    • roomType: string

      입장할 방의 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<JoinRoomPromise>

    요청 결과

LeaveRoom

LeaveRoomAsync

  • 현재 방에서 나가기

    LeaveRoom()의 비동기 버전

    Parameters

    • Optional payload: Payload

      서버에 전달할 추가 정보.서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<LeaveRoomPromise>

    요청 결과

Login

  • 서버에 로그인

    Parameters

    • userType: string

      로그인에 사용할 유저타입

    • Optional payload: Payload

      서버에 전달 할 추가정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional channelId: string

      로그인 할 채널아이디

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeLogin, loginInfo: LoginInfo) => void

      로그인 결과를 전달받아 처리 할 콜백

    Returns void

LoginAsync

  • 서버에 로그인

    Login()의 비동기 버전

    Parameters

    • userType: string

      로그인에 사용할 유저타입

    • Optional payload: Payload

      서버에 전달 할 추가정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional channelId: string

      로그인 할 채널아이디

    Returns Promise<LoginPromise>

    요청 결과

Logout

LogoutAsync

MatchPartyCancel

MatchPartyCancelAsync

  • 파티매치 요청을 취소

    MatchPartyCancel()의 비동기 버전

    Parameters

    • roomType: string

      매치를 요청한 룸타입

    Returns Promise<ResultCodeMatchPartyCancel>

    요청 결과

MatchPartyStart

MatchPartyStartAsync

  • 파티매치를 요청한다

    MatchPartyStart()의 Async 버전

    Parameters

    • roomType: string

      매치를 요청할 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<MatchPartyStartPromise>

    요청 결과

MatchRoom

  • MatchRoom(isCreateRoomIfNotJoinRoom: boolean, isMoveRoomIfJoinedRoom: boolean, roomType: string, payload?: Payload, leaveRoomPayload?: Payload, callback?: (agent: UserAgent, resultCode: ResultCodeMatchRoom, roomId: number, roomName: string, created: boolean, payload: Payload) => void): void
  • 룸 매치를 요청

    룸이 없을 경우 임의의 방을 생성하고 해당 방에 입장할 수도 있음

    Parameters

    • isCreateRoomIfNotJoinRoom: boolean

      true - 입장할 룸이 없을 경우 임의의 룸을 생성후 입장. false - 입장할 룸이 없을 경우 실패

    • isMoveRoomIfJoinedRoom: boolean

      true - 룸에 입장한 상태에서 요청했을 경우 다른 룸으로 이동. false - 룸에 입장한 상태에서 요청했을 경우 실패

    • roomType: string

      입장할 방의 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional leaveRoomPayload: Payload

      입장한 룸을 떠날때 서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeMatchRoom, roomId: number, roomName: string, created: boolean, payload: Payload) => void

      룸매치 결과를 전달받아 처리 할 콜백

    Returns void

MatchRoomAsync

  • MatchRoomAsync(isCreateRoomIfNotJoinRoom: boolean, isMoveRoomIfJoinedRoom: boolean, roomType: string, payload?: Payload, leaveRoomPayload?: Payload): Promise<MatchRoomPromise>
  • 룸 매치를 요청

    방이 없을 경우 임의의 방을 생성하고 해당 방에 입장할 수도 있음

    MatchRoom()의 비동기 버전

    Parameters

    • isCreateRoomIfNotJoinRoom: boolean

      true - 입장할 룸이 없을 경우 임의의 룸을 생성후 입장. false - 입장할 룸이 없을 경우 실패

    • isMoveRoomIfJoinedRoom: boolean

      true - 룸에 입장한 상태에서 요청했을 경우 다른 룸으로 이동. false - 룸에 입장한 상태에서 요청했을 경우 실패

    • roomType: string

      입장할 방의 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional leaveRoomPayload: Payload

      입장한 룸을 떠날때 서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<MatchRoomPromise>

    요청 결과

MatchUserCancel

MatchUserCancelAsync

  • 우저매치 요청을 취소

    매치 요청중이 아닌경우나 이미 매칭이 성공했거나 타임아웃이 발생했을 경우 실패

    MatchUserCancel의 비동기 버전

    Parameters

    • roomType: string

      매치를 요청한 룸타입

    Returns Promise<ResultCodeMatchUserCancel>

    요청 결과

MatchUserStart

  • 유저매치를 요청

    이미 방에 입장한 경우 등 서버의 조건에 따라 요청이 실패할 수 있음

    매칭이 성공한 경우 OnMatchUserDone()을 통해 알림을 받을 수 있음

    Parameters

    Returns void

MatchUserStartAsync

  • 유저매치를 요청

    이미 방에 입장한 경우 등 서버의 조건에 따라 요청이 실패할 수 있음

    매칭이 성공한 경우 OnMatchUserDone을 통해 알림을 받을 수 있음

    MatchUserStart()의 비동기 버전

    Parameters

    • roomType: string

      매치를 요청할 룸타입

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<MatchUserStartPromise>

    요청 결과

MoveChannel

MoveChannelAsync

  • 지정한 채널로 이동

    MoveChannel()의 비동기 버전

    Parameters

    • channelId: string

      이동할 채널아이디

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<MoveChannelPromise>

    요청 결과

MultiRequest

  • MultiRequest(packets: Array<Packet>): void
  • 서버로 패킷 목록를 보내고 응답을 대기

    응답을 받기위해 AddCallback()으로 응답으로 올 패킷또는 메세지에 대해 미리 콜백을 등록

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷 목록

    Returns void

MultiRequestToGatewaySession

  • MultiRequestToGatewaySession(packets: Array<Packet>): void
  • 서버의 세션으로 패킷 목록를 보내고 응답을 대기

    응답을 받기위해 AddCallback()으로 응답으로 올 패킷또는 메세지에 대해 미리 콜백을 등록

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷

    Returns void

MultiSend

  • MultiSend(packets: Array<Packet>): void
  • 서버로 패킷 목록 전송

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷 목록

    Returns void

MultiSendToGatewaySession

  • MultiSendToGatewaySession(packets: Array<Packet>): void
  • 서버의 세션으로 패킷 콕록 전송

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷 콕록

    Returns void

NamedRoom

  • NamedRoom(roomName: string, roomType: string, isParty: boolean, payload?: Payload, callback?: (agent: UserAgent, resultCode: ResultCodeNamedRoom, roomId: number, roomName: string, created: boolean, payLoad: Payload) => void): void
  • 지정한 이름의 방에 입장

    지정한 이름의 방이 없을 경우 지정한 이름의 방을 생성하고 해당 방에 입장

    Parameters

    • roomName: string

      입장하고자 하는 방의 이름

    • roomType: string

      입장할 방의 룸타입

    • isParty: boolean

      true - 파티 매칭을 목적으로 만들어진 방. false - 일반 방

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeNamedRoom, roomId: number, roomName: string, created: boolean, payLoad: Payload) => void

      네임드룸 처리 결과를 전달받아 처리 할 콜백

    Returns void

NamedRoomAsync

  • NamedRoomAsync(roomName: string, roomType: string, isParty: boolean, payload?: Payload): Promise<NamedRoomPromise>
  • 지정한 이름의 방에 입장

    지정한 이름의 방이 없을 경우 지정한 이름의 방을 생성하고 해당 방에 입장

    NamedRoom()의 비동기 버전

    Parameters

    • roomName: string

      입장하고자 하는 방의 이름

    • roomType: string

      입장할 방의 룸타입

    • isParty: boolean

      true - 파티 매칭을 목적으로 만들어진 방. false - 일반 방

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<NamedRoomPromise>

    요청 결과

RemoveAllCallback

  • RemoveAllCallback(): void
  • 등록한 모든 콜백을 등록 해제

    Returns void

RemoveCallback

  • RemoveCallback(resMsgId: number, callback?: (agent: UserAgent, packet: Packet) => void): any
  • RemoveCallback<T>(message: {}, callback?: (agent: UserAgent, msg: T) => void): void
  • 메세지 아이디 대해 등록한 모든 콜백을 등록 해제하거나 입력 받은 콜백을 등록해제

    Parameters

    • resMsgId: number

      등록한 메세지 아이디

    • Optional callback: (agent: UserAgent, packet: Packet) => void

      입력하지 않을 경우 모든 콜백, 입력 할 경우 입력한 콜백을 등록 해제

    Returns any

  • 특정 메세지에 대해 등록한 모든 콜백을 등록 해제

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      등록한 메세지

    • Optional callback: (agent: UserAgent, msg: T) => void

      입력하지 않을 경우 모든 콜백, 입력 할 경우 입력한 콜백을 등록 해제

    Returns void

RemoveListener

  • 등록한 유저리스너를 등록 해제

    Parameters

    • Optional listener: IUserListener

      등록한 유저리스너. 입력 할 경우 입력한 유저리스너를 등록 해제, 입력하지 않을 경우 모든 유저리스너 등록 해제

    Returns void

RemoveOnError

  • RemoveOnError(callback?: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): void
  • 등록한 모든 오류발생시 호출될 콜백을 등록 해제

    Parameters

    • Optional callback: (agent: UserAgent, errorCode: ErrorCode, command: string) => void

      등록한 콜백. 입력 할 경우 입력한 콜백 해제, 입력하지 않은 경우 등록된 모든 콜백 등록 해제

    Returns void

Request

  • 서버로 패킷을 보내고 응답을 대기

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    • Optional callback: (userAgent: UserAgent, packet: Packet) => void

      응답을 받을 경우 호출될 콜백 (선택 사항)

    Returns void

RequestAsync

  • 서버로 패킷 보내고 응답을 대기

    Request()의 비동기 버전

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns Promise<Packet>

    응답으로 받은 패킷

RequestAsyncToGatewaySession

  • RequestAsyncToGatewaySession(packet: Packet): Promise<Packet>
  • 서버의 세션으로 패킷 보내고 응답을 대기

    RequestToGatewaySession()의 비동기 버전

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns Promise<Packet>

    응답으로 받은 패킷

RequestPb

  • RequestPb<T>(reqMsg: IMessage, callback?: (userAgent: UserAgent, resMsg: T) => void): void
  • 서버로 메세지를 담은 패킷 보내고 응답을 대기

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    • Optional callback: (userAgent: UserAgent, resMsg: T) => void

      응답을 받을 경우 호출될 콜백 (선택 사항)

        • Parameters

          Returns void

    Returns void

RequestPbAsync

  • RequestPbAsync<T>(reqMsg: IMessage): Promise<T>
  • 서버로 메세지를 담은 패킷 보내고 응답을 대기

    RequestPb()의 비동기 버전

    Type parameters

    • T: IMessage

      응답으로 받을 메세지의 타입

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    Returns Promise<T>

    응답으로 받은 메세지

RequestPbAsyncToGatewaySession

  • RequestPbAsyncToGatewaySession<T>(reqMsg: IMessage): Promise<T>
  • 서버의 세션으로 메세지를 담은 패킷 보내고 응답을 대기

    RequestPbToGatewaySession()의 비동기 버전

    Type parameters

    • T: IMessage

      응답으로 받을 메세지의 타입

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    Returns Promise<T>

    응답으로 받은 메세지

RequestPbToGatewaySession

  • RequestPbToGatewaySession<T>(reqMsg: IMessage, callback?: (userAgent: UserAgent, resMsg: T) => void): void
  • 서버의 세션으로 메세지를 담은 패킷 보내고 응답을 대기

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    • Optional callback: (userAgent: UserAgent, resMsg: T) => void

      응답을 받을 경우 호출될 콜백 (선택 사항)

        • Parameters

          Returns void

    Returns void

RequestToGatewaySession

  • RequestToGatewaySession(packet: Packet, callback?: (userAgent: UserAgent, packet: Packet) => void): void
  • 서버의 세션으로 패킷을 보내고 응답을 대기

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    • Optional callback: (userAgent: UserAgent, packet: Packet) => void

      응답을 받을 경우 호출될 콜백 (선택 사항)

    Returns void

Send

  • 서버로 패킷을 전송

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns void

SendPb

  • SendPb<T>(reqMsg: IMessage): void
  • 서버로 메세지를 담은 패킷 전송

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    Returns void

SendPbToGatewaySession

  • SendPbToGatewaySession<T>(reqMsg: IMessage): void
  • 서버의 세션으로 메세지를 담은 패킷 전송

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 메세지

    Returns void

SendToGatewaySession

  • SendToGatewaySession(packet: Packet): void
  • 서버의 세션으로 패킷을 전송

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns void

SetUserData

  • SetUserData(userData: any): void
  • 임의의 데이터를 설정

    Parameters

    • userData: any

      임의의 데이터

    Returns void

SnapShot

  • 현재 유저의 임시저장 정보를 얻어오기

    재접속 등 유저의 모든 정보를 갱싱해야 할 필요가 있을때 사용

    서버 구현에 따라 내용이 달라 질수 있음

    Parameters

    Returns void

SnapShotAsync

  • 현재 유저의 임시저장 정보를 얻어오기

    재접속 등 유저의 모든 정보를 갱싱해야 할 필요가 있을때 사용

    서버 구현에 따라 내용이 달라 질수 있음 SnapShot()의 비동기 버전

    Parameters

    • Optional payload: Payload

      서버에 전달할 추가 정보. 서버 구현에 따라 사용하지 않을 수 있음

    Returns Promise<SnapShotPromise>

    요청 결과

Generated using TypeDoc