Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UserAgent

GameAnvil Server의 Game Node와 관련된 작업을 담당한다. 로그인(Login()), 로그아웃(Logout()) 및 Room 관리 등 기본 기능을 제공하며, 서버 구현에 따라 사용자 정의 기능을 추가적으로 제공할 수도 있다. UserAgent를 사용하기 위해서는 Connector.CreateUserAgent() 함수를 이용해 새로운 UserAgent를 생성해야 한다. ServiceName 과 SubId로 구분되는 여러개의 UserAgent를 생성할 수 있으며 생성된 각 UserAgent는 독립적으로 사용할 수 있다. 생성된 UserAgent는 Connector 에서 내부적으로 관리되며 Connector.GetUser()함수를 이용해 다시 사용할 수 있다.

UserAgent의 기본 기능 사용 UserAgent가 제공하는 기본 기능은 모두 비동기 함수를 통해 제공된다. 그리고 각 기능의 결과를 얻기 위해 크게 나눠 2가지 방식을 제공하고 있다. 첫째는 listener나 callback을 미리 등록해 놓고 이를 통해 결과에 대한 알림을 받는 방법이고 나머지는 기능을 요청 할 때 알림을 받을 callback을 같이 전달하는 방법이다. 두가지 방법을 같이 사용하는 것도 가능하고 목적에 따라 listener나 callback을 여러개 등록하여 사용할 수도 있다.

Hierarchy

  • UserAgent

Implements

Index

Methods

AddCallback

  • AddCallback<T>(message: {}, callback: (agent: UserAgent, msg: T) => void): void
  • 특정 Message에 대한 callback을 등록한다. 특정 Message의 패킷을 수신한 경우 등록된 callback이 호출된다.

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      응답으로 받을 패킷에 담긴 Message

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

      callback

    Returns void

AddListener

  • IUserListener를 상속받은 UserListener를 등록한다.

    Parameters

    • listener: IUserListener

      IUserListener를 상속받은 UserListener

    Returns void

AddOnError

  • AddOnError(callback: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): void
  • Error발생시 호출될 Callback을 등록한다.

    Parameters

    Returns void

AddUndefinedProtocolCallback

  • AddUndefinedProtocolCallback(resMsgIndex: number, callback: (agent: UserAgent, packet: Packet) => void): void
  • 임의의 Id에 대한 callback을 등록한다. 해당 Id의 패킷을 수신한 경우 등록된 callback이 호출된다.

    Parameters

    Returns void

ContainsCallback

  • ContainsCallback<T>(message: {}, callback?: (agent: UserAgent, msg: T) => void): boolean
  • 특정 Message에 대한 callback이 등록되어있는지 확인한다.

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      확인할 Message

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

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

    Returns boolean

ContainsListener

  • UserListener가 등록되었는지 확인한다.

    Parameters

    • Optional listener: IUserListener

      확인할 UserListener. 입력 할 경우 입력한 UserListener의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부.

    Returns boolean

ContainsOnError

  • ContainsOnError(callback?: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): boolean
  • Error발생시 호출될 Callback이 등록되었는지 확인한다.

    Parameters

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

      Error발생시 호출될 Callback. 입력 할 경우 입력한 callback의 등록 여부, 입력하지 않은 경우 하나 이상 등록 여부.

    Returns boolean

ContainsUndefinedProtocolCallback

  • ContainsUndefinedProtocolCallback(resMsgId: number, callback?: (agent: UserAgent, packet: Packet) => void): void
  • 임의의 Id에 대한 callback이 등록되어있는지 확인한다.

    Parameters

    • resMsgId: number

      확인할 패킷의 Id

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

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

    Returns void

CreateRoom

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

    Parameters

    • roomType: string

      생성할 방의 roomType.

    • roomName: string

      생성할 방의 이름.

    • Optional payload: Payload

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

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

      결과를 전달 받을 callback

    Returns void

CreateRoomAsync

  • 임의의 방을 생성하고 해당 방에 입장한다. CreateRoom의 Async 버전

    Parameters

    • roomType: string

      생성할 방의 roomType.

    • roomName: string

      생성할 방의 이름.

    • Optional payload: Payload

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

    Returns Promise<CreateRoomPromise>

    요청 결과

GetAccountId

  • GetAccountId(): string
  • 인증시 사용한 AccountId를 리턴한다.

    Returns string

    인증시 사용한 AccountId

GetChannelId

  • GetChannelId(): string
  • 로그인한 체널의 ChannelId를 리턴한다.

    Returns string

    로그인한 체널의 ChannelId

GetServiceName

  • GetServiceName(): string
  • 로그인한 서비스의 ServiceName을 리턴한다.

    Returns string

    로그인한 서비스의 ServiceName

GetSubId

  • GetSubId(): number
  • 로그인한 SubId를 리턴한다.

    Returns number

    로그인한 SubId

GetUserData

  • GetUserData(): any
  • SetUserData()로 설정한 임의의 데이터를 리턴한다.

    Returns any

    설정된 임의의 데이터

GetUserId

  • GetUserId(): number

GetUserType

  • GetUserType(): string
  • 로그인한 UserType을 리턴한다.

    Returns string

    로그인한 UserType

IsJoinedRoom

  • IsJoinedRoom(): boolean
  • 방에 입장했는지 여부를 리턴한다.

    Returns boolean

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

IsLogin

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

    Returns boolean

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

JoinRoom

  • 지정한 id의 방에 입장한다. 지정한 id의 방이 없을 경우 실패한다.

    Parameters

    • roomId: number

      입장하고자 하는 방의 id.

    • roomType: string

      입장할 방의 roomType.

    • Optional payload: Payload

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

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

      결과를 전달받을 callback

    Returns void

JoinRoomAsync

  • 지정한 id의 방에 입장한다. 지정한 id의 방이 없을 경우 실패한다. JoinRoom의 Async 버전

    Parameters

    • roomId: number

      입장하고자 하는 방의 id.

    • roomType: string

      입장할 방의 roomType.

    • Optional payload: Payload

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

    Returns Promise<JoinRoomPromise>

    요청 결과

LeaveRoom

LeaveRoomAsync

  • 현재 방에서 퇴장한다. LeaveRoom의 Async 버전

    Parameters

    • Optional payload: Payload

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

    Returns Promise<LeaveRoomPromise>

    요청 결과

Login

LoginAsync

  • 서비스에 로그인한다. Login의 Async 버전

    Parameters

    • userType: string

      로그인에 사용할 UserType

    • Optional payload: Payload

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

    • Optional channelId: string

      로그인 할 체널의 ChannelId.

    Returns Promise<LoginPromise>

    요청 결과

Logout

LogoutAsync

MatchPartyCancel

MatchPartyCancelAsync

MatchPartyStart

MatchPartyStartAsync

  • PartyMatch를 요청한다. MatchPartyStart의 Async 버전

    Parameters

    • roomType: string

      매치를 요청할 roomType.

    • Optional payload: Payload

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

    Returns Promise<MatchPartyStartPromise>

    요청 결과

MatchRoom

  • MatchRoom(isCreateRoomIfNotJoinRoom: boolean, isMoveRoomIfJoinedRoom: boolean, roomType: string, payload?: Payload, leaveRoomPayload?: Payload, callback?: (agent: UserAgent, resultCode: ResultCodeMatchRoom, roomId: string, roomName: string, created: boolean, payload: Payload) => void): void
  • Room 매치를 요청한다. 방이 없을 경우 임의의 방을 생성하고 해당 방에 입장할 수도 있다.

    Parameters

    • isCreateRoomIfNotJoinRoom: boolean

      true - 방이 없을 경우 임의의 방을 생성. false - 방이 없을 경우 실패

    • isMoveRoomIfJoinedRoom: boolean

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

    • roomType: string

      입장할 방의 roomType.

    • Optional payload: Payload

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

    • Optional leaveRoomPayload: Payload

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

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

      결과를 전달받을 callback

    Returns void

MatchRoomAsync

  • MatchRoomAsync(isCreateRoomIfNotJoinRoom: boolean, isMoveRoomIfJoinedRoom: boolean, roomType: string, payload?: Payload, leaveRoomPayload?: Payload): Promise<MatchRoomPromise>
  • Room 매치를 요청한다. 방이 없을 경우 임의의 방을 생성하고 해당 방에 입장할 수도 있다. MatchRoom의 Async 버전

    Parameters

    • isCreateRoomIfNotJoinRoom: boolean

      true - 방이 없을 경우 임의의 방을 생성. false - 방이 없을 경우 실패

    • isMoveRoomIfJoinedRoom: boolean

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

    • roomType: string

      입장할 방의 roomType.

    • Optional payload: Payload

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

    • Optional leaveRoomPayload: Payload

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

    Returns Promise<MatchRoomPromise>

    요청 결과

MatchUserCancel

MatchUserCancelAsync

  • UserMatch 요청을 취소한다. 매치 요청중이 아닌경우, 이미 매칭이 성공했거나 Timeout이 발생했을 경우 실패할 수 있다. MatchUserCancel의 Async 버전

    Parameters

    • roomType: string

      매치를 요청한 roomType.

    Returns Promise<ResultCodeMatchUserCancel>

    요청 결과

MatchUserStart

  • UserMatch를 요청한다. 이미 방에 입장한 경우 등 서버의 조건에 따라 요청이 실패할 수 있다. 매칭이 성공한 경우 OnMatchUserDone을 통해 알림을 받을 수 있다.

    Parameters

    Returns void

MatchUserStartAsync

  • UserMatch를 요청한다. 이미 방에 입장한 경우 등 서버의 조건에 따라 요청이 실패할 수 있다. 매칭이 성공한 경우 OnMatchUserDone을 통해 알림을 받을 수 있다. MatchUserStart의 Async 버전

    Parameters

    • roomType: string

      매치를 요청할 roomType.

    • Optional payload: Payload

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

    Returns Promise<MatchUserStartPromise>

    요청 결과

MoveChannel

MoveChannelAsync

  • 지정한 채널로 이동한다. MoveChannel의 Async 버전

    Parameters

    • channelId: string

      이동할 channel의 id.

    • Optional payload: Payload

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

    Returns Promise<MoveChannelPromise>

    요청 결과

MultiRequest

  • MultiRequest(packets: Array<Packet>): void
  • 서버로 Packet Array를 보내고, 응답을 기다린다. 응답을 받기위해 AddCallback으로 응답으로 올 Packet또는 Message에 대해 미리 callback을 등록해야한다

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷

    Returns void

MultiRequestToGatewaySession

  • MultiRequestToGatewaySession(packets: Array<Packet>): void
  • 서버의 Session으로 Packet Array를 보내고, 응답을 기다린다. 응답을 받기위해 AddCallback으로 응답으로 올 Packet또는 Message에 대해 미리 callback을 등록해야한다

    Parameters

    • packets: Array<Packet>

      서버로 보낼 패킷

    Returns void

MultiSend

  • MultiSend(packets: Array<Packet>): void
  • 서버로 Packet Array를 보낸다

    Parameters

    • packets: Array<Packet>

      서버로 보낼 Packet Array

    Returns void

MultiSendToGatewaySession

  • MultiSendToGatewaySession(packets: Array<Packet>): void
  • 서버의 Session으로 Packet Array를 보낸다

    Parameters

    • packets: Array<Packet>

      서버로 보낼 Packet Array

    Returns void

NamedRoom

  • NamedRoom(roomName: string, roomType: string, isParty: boolean, payload?: Payload, callback?: (agent: UserAgent, resultCode: ResultCodeNamedRoom, roomId: string, roomName: string, created: boolean, payLoad: Payload) => void): void
  • 지정한 이름의 방에 입장한다. 지정한 이름의 방이 없을 경우 지정한 이름의 방을 생성하고 해당 방에 입장한다.

    Parameters

    • roomName: string

      입장하고자 하는 방의 이름.

    • roomType: string

      입장할 방의 roomType.

    • isParty: boolean

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

    • Optional payload: Payload

      서버에 전달할 추가 정보.

      서버 구현에 따라 사용하지 않을 수 있음.

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

      결과를 전달받을 callback

    Returns void

NamedRoomAsync

  • NamedRoomAsync(roomName: string, roomType: string, isParty: boolean, payload?: Payload): Promise<NamedRoomPromise>
  • 지정한 이름의 방에 입장한다. 지정한 이름의 방이 없을 경우 지정한 이름의 방을 생성하고 해당 방에 입장한다. NamedRoom의 Async 버전

    Parameters

    • roomName: string

      입장하고자 하는 방의 이름.

    • roomType: string

      입장할 방의 roomType.

    • isParty: boolean

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

    • Optional payload: Payload

      서버에 전달할 추가 정보.

      서버 구현에 따라 사용하지 않을 수 있음.

    Returns Promise<NamedRoomPromise>

    요청 결과

RemoveAllCallback

  • RemoveAllCallback(): void
  • 등록한 모든 callback을 등록 해제한다.

    Returns void

RemoveCallback

  • RemoveCallback<T>(message: {}, callback?: (agent: UserAgent, msg: T) => void): void
  • 특정 Message에 대해 등록한 모든 callback을 등록 해제한다.

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      등록한 Message

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

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

    Returns void

RemoveListener

  • 등록한 UserListener를 등록 해제한다.

    Parameters

    • Optional listener: IUserListener

      등록한 UserListener. 입력하지 않을 경우 모든 UserListener, 입력 할 경우 입력한 UserListener를 등록 해제.

    Returns void

RemoveOnError

  • RemoveOnError(callback?: (agent: UserAgent, errorCode: ErrorCode, command: string) => void): void
  • 등록한 모든 Error발생시 호출될 Callback을 등록 해제한다.

    Parameters

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

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

    Returns void

RemoveUndefinedProtocolCallback

  • RemoveUndefinedProtocolCallback(resMsgIndex: number, callback?: (agent: UserAgent, packet: Packet) => void): void
  • 임의의 Id에 대해 등록한 모든 callback을 등록 해제하거나 입력 받은 callback을 등록해제한다.

    Parameters

    • resMsgIndex: number

      등록한 임의의 Id

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

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

    Returns void

Request

  • 서버로 Packet을 보내고, 응답을 기다린다.

    Parameters

    • packet: Packet

      서버로 보낼 패킷

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

      응답을 받을 경우 호출될 callback. (선택 사항)

    Returns void

RequestAsync

  • 서버로 패킷 보내고, 응답을 기다린다. Request의 async 버전.

    Parameters

    • packet: Packet

      서버로 보낼 Packet

    Returns Promise<Packet>

    응답으로 받은 Packet.

RequestAsyncToGatewaySession

  • RequestAsyncToGatewaySession(packet: Packet): Promise<Packet>
  • 서버의 Session으로 패킷 보내고, 응답을 기다린다. RequestToGatewaySession의 async 버전.

    Parameters

    • packet: Packet

      서버로 보낼 Packet

    Returns Promise<Packet>

    응답으로 받은 Packet.

RequestPb

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

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

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

      응답을 받을 경우 호출될 callback. (선택 사항)

        • Parameters

          Returns void

    Returns void

RequestPbAsync

  • RequestPbAsync<T>(reqMsg: IMessage): Promise<T>
  • 서버로 Message를 담은 패킷 보내고, 응답을 기다린다. RequestPb의 async 버전.

    Type parameters

    • T: IMessage

      응답으로 받을 Message의 타입

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

    Returns Promise<T>

    응답으로 받은 Message.

RequestPbAsyncToGatewaySession

  • RequestPbAsyncToGatewaySession<T>(reqMsg: IMessage): Promise<T>
  • 서버의 Session으로 Message를 담은 패킷 보내고, 응답을 기다린다. RequestPbToGatewaySession의 async 버전.

    Type parameters

    • T: IMessage

      응답으로 받을 Message의 타입

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

    Returns Promise<T>

    응답으로 받은 Message.

RequestPbToGatewaySession

  • RequestPbToGatewaySession<T>(reqMsg: IMessage, callback?: (userAgent: UserAgent, resMsg: T) => void): void
  • 서버의 Session으로 Message를 담은 패킷 보내고, 응답을 기다린다.

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

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

      응답을 받을 경우 호출될 callback. (선택 사항)

        • Parameters

          Returns void

    Returns void

RequestToGatewaySession

  • RequestToGatewaySession(packet: Packet, callback?: (userAgent: UserAgent, packet: Packet) => void): void
  • 서버의 Session으로 Packet을 보내고, 응답을 기다린다.

    Parameters

    • packet: Packet

      서버로 보낼 패킷

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

      응답을 받을 경우 호출될 callback. (선택 사항)

    Returns void

Send

  • 서버로 Packet을 보낸다

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns void

SendPb

  • SendPb<T>(reqMsg: IMessage): void
  • 서버로 Message를 담은 패킷 보낸다.

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

    Returns void

SendPbToGatewaySession

  • SendPbToGatewaySession<T>(reqMsg: IMessage): void
  • 서버의 Session으로 Message를 담은 패킷 보낸다.

    Type parameters

    • T: IMessage

    Parameters

    • reqMsg: IMessage

      서버로 보낼 Message

    Returns void

SendToGatewaySession

  • SendToGatewaySession(packet: Packet): void
  • 서버의 Session으로 Packet을 보낸다

    Parameters

    • packet: Packet

      서버로 보낼 패킷

    Returns void

SetUserData

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

    Parameters

    • userData: any

      임의의 데이터

    Returns void

SnapShot

  • 현재 user의 snapshot을 얻어온다. 재접속 등 user의 모든 정보를 갱싱해야 할 필요가 있을때 사용할 수 있다. 서버 구현에 따라 내용이 달라진다.

    Parameters

    Returns void

SnapShotAsync

  • 현재 user의 snapshot을 얻어온다. 재접속 등 user의 모든 정보를 갱싱해야 할 필요가 있을때 사용할 수 있다. 서버 구현에 따라 내용이 달라진다. SnapShot의 Async 버전

    Parameters

    • Optional payload: Payload

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

    Returns Promise<SnapShotPromise>

    요청 결과

Generated using TypeDoc