Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UserAgent

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

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

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

AddOnReconnect

AddUndefinedProtocolCallback

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

    Parameters

    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>

    요청 결과

MoveService

  • MoveService(serviceName: string, userType: string, channelId?: string, payload?: Payload, callback?: (agent: UserAgent, resultCode: ResultCodeMoveService, serviceName: string, userType: string, channelId: string, payloadService: Payload, payloadChannel: Payload) => void): void
  • 지정한 서비스로 이동한다.

    Parameters

    • serviceName: string

      이동할 service의 ServiceName.

    • userType: string

      이동할 service에서 사용할 userType.

    • Optional channelId: string

      이동할 service에서 사용할 channelId.

    • Optional payload: Payload

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

    • Optional callback: (agent: UserAgent, resultCode: ResultCodeMoveService, serviceName: string, userType: string, channelId: string, payloadService: Payload, payloadChannel: Payload) => void

      결과를 전달받을 callback

    Returns void

MoveServiceAsync

  • MoveServiceAsync(serviceName: string, userType: string, channelId?: string, payload?: Payload): Promise<MoveServicePromise>
  • 지정한 서비스로 이동한다. MoveService의 Async 버전

    Parameters

    • serviceName: string

      이동할 service의 ServiceName.

    • userType: string

      이동할 service에서 사용할 userType.

    • Optional channelId: string

      이동할 service에서 사용할 channelId.

    • Optional payload: Payload

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

    Returns Promise<MoveServicePromise>

    요청 결과

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>

    요청 결과

RemoveCallback

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

    Type parameters

    • T: IMessage

    Parameters

    • message: {}

      등록한 Message

    Returns void

RemoveListener

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

    Parameters

    Returns void

RemoveOnError

  • RemoveOnError(): void
  • 등록한 모든 Error발생시 호출될 Callback을 등록 해제한다.

    Returns void

RemoveOnReconnect

  • RemoveOnReconnect(): void
  • 등록한 모든 자동 재접속 완료시 호출될 Callback을 등록 해제한다.

    Returns void

RemoveUndefinedProtocolCallback

  • RemoveUndefinedProtocolCallback(resMsgIndex: number): void
  • 임의의 Id에 대해 등록한 모든 callback을 등록 해제한다.

    Parameters

    • resMsgIndex: number

      등록한 임의의 Id

    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>

    요청 결과

UpdateLoginPayload

  • UpdateLoginPayload(payload: Payload): void
  • Login시 사용된 payload값을 갱신할 때 사용. 자동 재접속 시 사용 됨.

    Parameters

    • payload: Payload

      업데이트할 payload

    Returns void

Generated using TypeDoc