Game > GameAnvil > Connector > 릴리스 노트

1.1.1 (2021.02.10)

TS
  • git : client_connector_type_script
  • tag : 1.1.1
  • 변경
    • SingleServer
      • onMatchRoom 사용 시 payload에 null이 넘어오는 이슈 수정
      • OnLogin에 id: string 파라메터를 subId: number로 변경
      • OnCreateRoom, OnJoinRoom, OnMatchRoom, OnNamedRoom에 누락된 roomName 파라메터 추가.
      • OnMatchRoom, OnNamedRoom에 누락된 created파라메터 추가.
      • OnXXX 등록 시 기존에 등록된 콜백 제거.
      • OnLogin() 응답으로 loginInfo에 null을 넘길 경우 serviceId에 요청받은 serviceId를 넣어 응답하도록 예외 처리 추가.
      • 등록된 콜백에서 에러가 발생 할 경우 callstack 정보가 사용자에게 올라 갈 수 있도록 다시 throw

1.1.0 (2020.12.18)

C
  • git : client_connector_cshap
  • tag : 1.1.0
  • 변경
    • .Net 4.5 이상 지원으로 완전 전환
      • 사용 라이브러리 모두 .Net 4.5 용 최신 버전으로 교체
    • ConnectionAgent
      • IsConnected() : 접속 여부 확인 API 추가.
      • IsAuthenticated() : 인증되었는지 확인 API 추가.
    • SingleServer의 GameAnvil.Action -> GameAnvil.Handler로 이름 변경.
TS
  • git : client_connector_type_script
  • tag : 1.1.0
  • 변경
    • 호환성 이슈로 수정하여 GitEnterprize에 올려놓고 사용하던 protobufjs를 이슈가 수정된 공식 최신버전으로 교체

1.0.1 (2020.10.08)

Typescript

FIX
  • Request를 동시에 여러번 호출할 경우 호출 순서의 역순으로 패킷을 전송하는 버그 수정

1.0.0 (2020.08.31)

C-Sharp

Change
  • MoveService 제거
  • Reconnect, Retry 기능 제거
  • PacketHelper의 GetMessage에 Type을 파라메터로 받는 API추가.
  • 각 ResultCode에 고유 숫자 적용

  • ResultCode 추가 및 이름 변경

    • 현제 FORCE_CLOSE_DUPLICATE_LOGIN 케이스에 FORCE_CLOSE_BY_NEW_CONNECTION 가 넘어오는 문제가 있다. 다음 릴리즈 때 수정 될 예정.
Fix
  • Disconnect시에도 UserAgent의 isLogin이 true를 리턴하는 이슈 수정

Typescript

Change
  • MoveService 제거

  • Reconnect, Retry 기능 제거

  • 각 ResultCode에 고유 숫자 적용

  • ResultCode 추가 및 이름 변경

    • 현제 FORCE_CLOSE_DUPLICATE_LOGIN 케이스에 FORCE_CLOSE_BY_NEW_CONNECTION 가 넘어오는 문제가 있다. 다음 릴리즈 때 수정 될 예정.

ResultCode 세부 변경사항

  • ResultCodeAuth
    • 추가
      • AUTH_FAIL_INVALID_ACCOUNT_ID
  • ResultCodeLogin
    • 이름변경
      • LOGIN_FAIL_EMPTY_SUB_ID -> LOGIN_FAIL_INVALID_SUB_ID
    • 제거
      • LOGIN_FAIL_LOGINED_SAME_SERVICE
    • 추가.
      • LOGIN_FAIL_INVALID_USERID : 잘못된 유저 아이디.
      • LOGIN_FAIL_LOGINED_OTHER_USER_TYPE : 동일 Account 아이디로 다른 UserType이 로그인 되어있음.
      • LOGIN_FAIL_LOGINED_OTHER_DEVICE : 동일 Account 아이디로 다른 DeviceId가 로그인 되어있음.
  • ResultCodeMatchRoom
    • 제거
      • MATCH_ROOM_FAIL_UNKNOWN_ERROR
  • ResultCodeMatchUserStart
    • 제거
      • MATCH_USER_START_FAIL_MATCH_UNKNOWN_ERROR
  • ResultCodeMatchUserCancel
    • 제거
      • MATCH_USER_CANCEL_FAIL_MATCH_UNKNOWN_ERROR
  • ResultCodeMatchPartyStart
    • 제거
      • MATCH_PARTY_START_FAIL_MATCH_UNKNOWN_ERROR
  • ResultCodeMatchPartyCancel
    • 제거
      • MATCH_PARTY_CANCEL_FAIL_MATCH_UNKNOWN_ERROR
  • ResultCodeNamedRoom
    • 추가.
      • NAMED_ROOM_FAIL_INVALID_ROOM_NAME : 잘못된 방 이름을 보냈을 경우.
  • ResultCodeDisconnect
    • 이름 변경
      • FORCE_CLOSE_SYSTEM -> FORCE_CLOSE_SYSTEM_ERROR
      • FORCE_CLOSE_CONTENT -> FORCE_CLOSE_BASE_CONNECTION : 서버에서 BaseConnection의 close() 호출 FORCE_CLOSE_BASE_USER : 서버에서 BaseUser의 closeConnection() 호출
    • 추가.
      • FORCE_CLOSE_INVALID_NODE : GameNode가 invalid 상태로 변경된 경우.
      • FORCE_CLOSE_USER_TRANSFER_FAIL : 유저 트렌스퍼가 실패한 경우.
      • FORCE_CLOSE_USER_TRANSFER_ERROR : 유저 트렌스퍼중 시스템 에러가 발생한 경우.
    • 추가되었으나 클라이언트에서 받을 수 없는 경우. 서버에서는 클라이언트의 연결이 이미 끊겨있을것으로 예상하고 접속을 강제 종료하면서 아래 코드를 사용한다. 클라이언트의 연결이 끈겨 있기 때문에 아래 코드는 받을 수 없어야 한다. 이 코드를 받았다면 GameAnvil 개발팀에 제보해 주시길 바란다.
      • FORCE_CLOSE_BY_NEW_CONNECTION : 같은 계정 정보로 새로운 로그인 요청이 들어온 경우.
      • 현제 FORCE_CLOSE_DUPLICATE_LOGIN 케이스에 이 코드가 넘어오는 문제가 있다. 다음 릴리즈 때 수정 될 예정.
      • FORCE_CLOSE_DISCONNECT_ALARM : 클라이언트가 서버의 상태 체크에 응답을 하지 않은 경우.
      • FORCE_CLOSE_CHECK_CLIENT_STATE_FAIL : 클라이언트가 서버의 상태 체크에 응답을 하지 않은 경우.
      • FORCE_CLOSE_GHOST_USER : 고스트 유저인 경우.

1.0.0-EA3 (2020.07.27)

Typescript

Change
  • ConnectionAgent에 IsReconnecting() 추가.
FIX
  • UserAgent가 로그인 된 후 disconnect되었을 때 isLogin()이 true를 리턴하는 문제 수정
  • UserAgent를 여러개 사용할때 request에 대한 응답을 받지 못하고 disconnect된 경우 request에 같이 넘겨준 callback이 지워지지 않고 남아서 다음 request시 callback이 2번 호출 되는 문제 수정

1.0.0-EA2 (2020.07.07)

C-Sharp

Change
  • 이름 변경 : Gameflex -> GameAnvil
  • RemoveAllListeners()
    • bool 파라미터 추가.
    • false일 경우 userListener, connectonListener는 제거하지 않음.
    • defalult = true,
  • RemoveAllUserListeners() 추가.
  • RemoveAllConnectionListeners() 추가.

Typescript

Change
  • 이름 변경 : Gameflex -> GameAnvil
  • RemoveAllCallback () 추가.

1.0.0-EA (2020.06.29)

C-Sharp

Change
  • 이름 변경 : Tardis -> Gameflex
    • TardisSocket -> Socket
    • SessionAgent -> ConnectionAgent
  • Type 변경
    • UserId의 type이 string에서 int로 변경
    • SubId의 type이 string에서 int로 변경
    • RoomId의 type이 string에서 int로 변경
  • CreateUserAgent(), GetUserAgent()
    • 파라미터 string SubId -> int SubId 로 변경
    • SubId > 0 이어야 한다.
  • LoginedUserInfo
    • UserId 항목 추가.
    • Payload 항목 추가.
  • LoginInfo
    • userId 항목 추가.
    • userType 항목 추가.
    • roomName 항목 추가.
  • UserAgent
    • 파라미터 string roomId -> int roomId 로 변경.
    • RequestToSessionActor() ->RequestToGatewaySession()
    • SendToSessionActor() -> SendToGatewaySession()
    • RequestToSessionActor() -> RequestToGatewaySession()
    • CreateRoom() - 파라미터 string roomName 추가.
    • onCreateRoom() - 파라미터 string roomName 추가.
    • onJoinRoom() - 파라미터 string roomName 추가.
    • onMatchRoom()
      • 파라미터 string roomName 추가.
      • 파라미터 bool created 추가.
    • onNamedRoom()
      • 파라미터 string roomName 추가.
      • 파라미터 bool created 추가.
New
  • 에러코드
    • ResultCodeLogin
      • LOGIN_FAIL_EMPTY_SUB_ID
      • LOGIN_FAIL_TIMEOUT_GAME_SERVER
    • ResultCodeMoveChannel
      • MOVE_CHANNEL_FAIL_NODE_NOT_FOUND
      • MOVE_CHANNEL_FAIL_ALREADY_JOINED_CHANNEL
      • MOVE_CHANNEL_FAIL_ALREADY_JOINED_ROOM
  • Exception
    • InvalidSubId

Typescript

Change
  • 이름 변경 : Tardis -> Gameflex
    • SessionAgent -> ConnectionAgent
  • Type 변경
    • UserId의 type이 string에서 number로 변경
    • SubId의 type이 string에서 number로 변경
    • RoomId의 type이 string에서 number로 변경
  • CreateUserAgent(), GetUserAgent()
    • 파라미터 SubId: string -> SubId: number 로 변경
    • SubId > 0 이어야 한다.
  • LoginedUserInfo
    • UserId 항목 추가.
    • Payload 항목 추가.
  • LoginInfo
    • userId 항목 추가.
    • userType 항목 추가.
    • roomName 항목 추가.
  • UserAgent
    • 파라미터 roomId: string -> roomId: number 로 변경.
    • MultiSendToSessionActor()->MultiSendToGatewaySession()
    • SendToSessionActor() -> SendToGatewaySession()
    • SendPbToSessionActor() -> SendPbToGatewaySession()
    • RequestToSessionActor() -> RequestToGatewaySession()
    • MultiRequestToSessionActor() -> MultiRequestToGatewaySession()
    • RequestToSessionActor() -> RequestToGatewaySession()
    • RequestPbToSessionActor() -> RequestPbToGatewaySession()
    • RequestPbAsyncToSesstionActor() -> RequestPbAsyncToGatewaySession()
    • RequestAsyncToSessionActor() -> RequestAsyncToGatewaySession()
    • CreateRoom() - 파라미터 roomName: string 추가.
    • onCreateRoom() - 파라미터 roomName: string 추가.
    • onJoinRoom() - 파라미터 roomName: string 추가.
    • onMatchRoom()
      • 파라미터 roomName: string 추가.
      • 파라미터 created: boolean 추가.
    • onNamedRoom()
      • 파라미터 roomName: string 추가.
      • 파라미터 created: boolean 추가.
New
  • 에러코드
    • ResultCodeLogin
      • LOGIN_FAIL_EMPTY_SUB_ID
      • LOGIN_FAIL_TIMEOUT_GAME_SERVER
    • ResultCodeMoveChannel
      • MOVE_CHANNEL_FAIL_NODE_NOT_FOUND
      • MOVE_CHANNEL_FAIL_ALREADY_JOINED_CHANNEL
      • MOVE_CHANNEL_FAIL_ALREADY_JOINED_ROOM

0.12.1.1 (2020.06.23)

C-Sharp

Change
  • ProtocolManger.unregister()사용시 exception발생하는 버그 수정

Typescript

Change
  • onDisconnect() 콜백에서 바로 connect() 를 호출할 경우 에러 발생 이슈 수정

0.12.1 (2020.04.06)

C-Sharp

Change
  • XML 문서 주석 적용
  • Agent.LvNetLogger, Logger 삭제.
  • Agent.ContainsListener(int customMsgId) -> AgentHelper로 이동
  • SessionAgent.AddCustomMsgListener, RemoveCustomMsgListener -> AgentHelper.RemoveListener() 로 대체
  • UserAgent.AddCustomMsgListener, RemoveCustomMsgListener -> AgentHelper.AddListener, RemoveListener로 대체
  • Agent.FlushQueue 제거
  • Connector.FlushNetworkQueue 제거
  • Packet.GetMsgId, GetRetryCount, SetRetryCount, setUncompressSize, GetServiceId, GetSubId -> 제거
  • ProtocolManager.RegisterProtocol()에서 protocolId의 최대값 체크 (최대 510)
  • 잘못된 ProtocolId사용시 InvalidProtocolId Exception 발생하도록 수정
  • OnNamedRoom에서 RoomName -> RoomId 이름 변경
Fix
  • MatchUserDone일때 isJoinRoom 셋팅 안되던 버그 수정

Typescript

Change
  • JSDoc 적용
  • UserAgent.isJoinRoom 추가.
  • IUserListener.OnMatchPartyCancel()에서 Payload 제거.
  • IUserListener.OnNamedRoom() 에서 roomName-> RoomId로 이름 변경
  • Payload.createDefault() 제거. CreateEmpty() 로 대체함
  • SessionAgent.addOnDisconnect()
    • AddOnDisconnect(callback: (agent: SessionAgent, message: string) => void): void; => AddOnDisconnect(callback: (session: SessionAgent, resultCode: ResultCodeDisconnect, reason: string, force: boolean, payload: Payload) => void): void;

0.12.0 (2020.02.14)

C-Sharp

Change
  • 파라미터 이름 변경 : msgIndex -> customMsgId

    • Agent
      • public bool ContainsListener(int customMsgId)
    • SessionAgent
      • public void AddCustomMsgListener(int custonMsgId, Action\ listener)
      • public void RemoveCustomMsgListener(int customMsgId, Action\ listener)
    • UserAgent
      • public void AddCustomMsgListener(int custonMsgId, Action\ listener)
      • public void RemoveCustomMsgListener(int customMsgId, Action\ listener)
    • Payload
      • public Packet getPacket(int customMsgId)
  • Packet

    • public Packet(int descId, int msgIndex, byte[] buffer) 삭제
    • public Packet(int msgIndex, byte[] buffer) 삭제
    • public string GetFileDescriptorName() 삭제
    • public void SetDescId(int descId) 삭제
    • public int GetDescId() 삭제
    • public int GetMsgIndex() 삭제
    • public Packet setTimeout(int timeout) 삭제
    • public int GetTimeout() 삭제
New
  • ResultCodeMatchRoom
    • MATCH_ROOM_FAIL_UNKNOWN_ERROR = 6,
    • MATCH_ROOM_FAIL_MATCHED_ROOM_DOES_NOT_EXIST = 7
  • Packet
    • public static Packet CreateWithCustomMsg(int customMsgId, byte[] buffer)
    • public int GetMsgId()

Typescript

Change
  • Packet
    • GetDescId(): number; 삭제
    • GetMsgIndex(): number; 삭제
    • GetTimeOut(): number; 삭제
    • SetTimeOut(timeOut: number): void; 삭제
New
  • ResultCodeMatchRoom
    • MATCH_ROOM_FAIL_UNKNOWN_ERROR = 6,
    • MATCH_ROOM_FAIL_MATCHED_ROOM_DOES_NOT_EXIST = 7
  • Packet
    • GetMsgId(): number;
  • ProtocolManager
    • static getMsgId(descId: number, msgIndex: number): number;
    • static getMsgIdFromPb(msg: IMessage | (new () => T)): any;
    • static getCustomMsgId(customMsgId: number): number;
TOP