GameAnvilConnector 2.0.0
|
Public Member Functions | |
GameAnvilUser (GameAnvilConnector connector, string serviceName, int subId) | |
게임 서버에 접근하기 위한 유저의 새로운 인스턴스를 생성 | |
void | SetJoinRoomFalse () |
방 입장 정보를 리셋 | |
virtual async Task< ErrorResult< ResultCodeLogin, LoginResult > > | Login (string userType, string channelId, Payload? requestPayload=null) |
게임 서버에 로그인 | |
virtual async Task< ErrorResult< ResultCodeLogout, LogoutResult?> > | Logout () |
게임 서버에서 로그아웃 | |
void | SetMessageCallback< TProtoBuffer > (Action< GameAnvilUser, ResultCode, TProtoBuffer >? callback) |
서버에서 프로토 버퍼를 받았을 때 호출할 메서드를 지정 | |
void | SetMessageCallback< TProtoBuffer > (Func< GameAnvilUser, ResultCode, TProtoBuffer, Task >? callback) |
프로토 버퍼를 받았을 때 호출할 함수를 지정합니다 만약 이미 있다면 삭제하고 인자로 받은 함수를 사용합니다 (주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 읺을 수 있음 | |
void | SetMessageCallback< TProtoBuffer > (MessageDescriptor descriptor, Action< GameAnvilUser, ResultCode, TProtoBuffer >? callback) |
프로토 버퍼를 받았을 때 호출할 메서드를 지정 | |
void | SetMessageCallback< TProtoBuffer > (MessageDescriptor descriptor, Func< GameAnvilUser, ResultCode, TProtoBuffer, Task >? callback) |
프로토 버퍼를 받았을 때 호출할 함수를 지정합니다 만약 이미 있다면 삭제하고 인자로 받은 함수를 사용합니다 (주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 읺을 수 있음 | |
virtual async Task< ErrorResult< ResultCodeCreateRoom, CreatedRoomResult > > | CreateRoom (string roomName, string roomType, string matchingGroup, Payload? payload=null) |
방을 생성하고 입장 | |
virtual async Task< ErrorResult< ResultCodeAllChannelCountInfo, Dictionary< string, ChannelCountResult > > > | GetAllChannelCountInfo (string serviceName) |
virtual async Task< ErrorResult< ResultCodeAllChannelInfo, Dictionary< string, Payload > > > | GetAllChannelInfo (string serviceName) |
virtual async Task< ErrorResult< ResultCodeAllChannelCountInfo, Dictionary< string, ChannelCountResult > > > | GetChannelCountInfo (string serviceName, string channelId) |
virtual async Task< ErrorResult< ResultCodeChannelInfo, Payload > > | GetChannelInfo (string serviceName, string channelId) |
virtual async Task< ErrorResult< ResultCodeJoinRoom, JoinRoomResult > > | JoinRoom (string roomType, int roomId, string matchingUserCategory, Payload? payload=null) |
방에 입장 | |
virtual async Task< ErrorResult< ResultCodeLeaveRoom, Payload > > | LeaveRoom (Payload? payload=null) |
방에서 나온다 | |
virtual async Task< ResultCodeMatchPartyCancel > | MatchPartyCancel (string roomType) |
파티 매칭 취소 요청 | |
virtual async Task< ErrorResult< ResultCodeMatchPartyStart, Payload > > | MatchPartyStart (string roomType, string matchingGroup, Payload? payload=null) |
파티 매칭을 시작 | |
virtual async Task< ErrorResult< ResultCodeMatchRoom, MatchResult > > | MatchRoom (bool isCreateRoomIfNotJoinRoom, bool isMoveRoomIfJoinedRoom, string roomType, string matchingGroup, string matchingUserCategory, Payload? payload=null, Payload? leaveRoomPayload=null) |
방 매칭 요청 | |
virtual async Task< ResultCodeMatchUserCancel > | MatchUserCancel (string roomType) |
매칭 취소 요청 | |
virtual async Task< ErrorResult< ResultCodeMatchUserStart, Payload > > | MatchUserStart (string roomType, string matchingGroup, Payload? payload=null) |
유저 매칭을 등록 | |
async Task< ErrorResult< ResultCodeMoveChannel, MoveChannelResult > > | MoveChannel (string channelId, Payload? payload=null) |
지정한 채널로 이동 | |
virtual async Task< ErrorResult< ResultCodeNamedRoom, NamedRoomResult > > | NamedRoom (string roomType, string roomName, bool isParty, Payload? payload=null) |
지정한 이름의 방에 입장 | |
virtual async Task< ErrorResult< ResultCodeSnapshot, Payload > > | SnapShot (Payload? payload=null) |
현재 유저의 스냅샷 정보를 요청 | |
virtual void | SendUser (IMessage message) |
게임 서버의 유저로 패킷을 전송 | |
virtual Task< ErrorResult< ResultCode, TResponse?> > | RequestUser< TResponse > (IMessage message, CancellationToken token=default) |
virtual Task< ErrorResult< ResultCode, TResponse?> > | RequestUser< TResponse > (Packet packet, CancellationToken token=default) |
서버로 패킷을 보낸 후 응답 패킷을 대기 | |
void | Dispose () |
객체를 해제 | |
Protected Member Functions | |
void | Reset () |
virtual Task | ReceiveAdminKickOutNotice (Base.ErrorCode errorCode, Base.AdminKickoutNoti adminKickOut) |
virtual Task | ReceiveClientState (Base.ErrorCode errorCode, Base.ClientStateCheck clientStateCheck) |
virtual Task | ReceiveForceLeaveRoomNotice (Base.ErrorCode errorCode, Base.ForceLeaveRoomNoti forceLeaveRoom) |
virtual Task | ReceiveForceLogoutNotice (Base.ErrorCode errorCode, Base.ForceLogoutNoti forceLogout) |
virtual Task | ReceiveMatchPartyCancel (Base.ErrorCode errorCode, Base.MatchPartyCancelResOrNoti matchPartyCancelRes) |
virtual Task | ReceiveMatchPartyStart (Base.ErrorCode errorCode, Base.MatchPartyStartResOrNoti matchPartyCancelRes) |
virtual Task | ReceiveMatchUserDone (Base.ErrorCode errorCode, Base.MatchUserDone matchUserDone) |
virtual Task | ReceiveMatchUserTimeout (Base.ErrorCode errorCode, Base.MatchUserTimeout matchUserTimeout) |
virtual Task | ReceiveMoveChannelNotice (Base.ErrorCode errorCode, Base.MoveChannelNoti moveChannel) |
virtual Task | ReceiveNotice (Base.ErrorCode errorCode, Base.Notice notice) |
virtual Task | ReceiveSessionClose (ResultCodeSessionClose resultCode, Payload payload) |
virtual void | Dispose (bool disposing) |
Properties | |
string | UserType = string.Empty [get] |
로그인 시 지정한 유저 타입 정보 | |
bool | IsUserMatchInProgress [get] |
현재 매칭 중인지 여부 | |
bool | IsPartyMatchInProgress [get] |
현재 파티 매칭 중인지 여부 | |
int | RoomId [get] |
방에 있을 때 방의 아이디 | |
bool | IsJoinedRoom [get] |
방에 입장해있는지 여부 | |
string | ChannelId = string.Empty [get, set] |
채널 정보 만약 없다면 빈 문자열 | |
bool | IsLoggedIn [get, set] |
로그인 하였는지 여부 | |
int | UserId [get] |
유저 아이디 | |
int | SubId [get] |
인스턴스를 만들 때 사용한 SubId | |
string | ServiceName [get] |
유저 생성할 때 지정한 서비스 이름을 반환 | |
int | ServiceId [get] |
ServiceName 을 통해 가져온 서비스 아이디를 반환 | |
Events | |
Action< GameAnvilUser, ResultCodeMatchPartyStart, Payload >? | OnMatchPartyStart |
파티 매칭 시작 시 호출하는 이벤트 | |
Action< GameAnvilUser, ResultCodeMatchPartyCancel >? | OnMatchPartyCancel |
파티 매칭 취소 시 호출하는 이벤트 | |
Action< GameAnvilUser, ResultCodeMatchUserDone, MatchResult >? | OnMatchUserDone |
유저 매칭 완료시 호출하는 이벤트 | |
Action< GameAnvilUser >? | OnMatchUserTimeout |
유저 매칭이 시간 초과로 취소되었을 때 호출하는 이벤트 | |
Action< GameAnvilUser, MoveChannelResult >? | OnMoveChannel |
채널 이동시 호출하는 이벤트 | |
Action< GameAnvilUser, string >? | OnNotice |
공지 메시지를 받을 시 호출하는 이벤트 | |
Action< GameAnvilUser, Payload >? | OnForceLogout |
서버에서 로그아웃 명령을 받을 시 호출하는 이벤트 | |
Action< GameAnvilUser, ResultCodeSessionClose, Payload >? | OnSessionClose |
이 유저의 연결이 끊어졌을 시 호출하는 이벤트 | |
Action< GameAnvilUser, string >? | OnAdminKickout |
관리자 기능으로 로그아웃 되었을 시 호출하는 이벤트 | |
Action< GameAnvilUser, int, Payload >? | OnForceLeaveRoom |
방에서 쫒겨났을 시 호출하는 이벤트 | |
|
inline |
게임 서버에 접근하기 위한 유저의 새로운 인스턴스를 생성
connector | 커넥터 |
serviceName | 서비스 이름 |
subId | 추가 아이디 값(1 ~ 127) |
InvalidSubId | 서비스 아이디 제한이 맞지 않음 |
|
inlinevirtual |
방을 생성하고 입장
roomName | 방 이름 |
roomType | 방 타입(서버 설정에서 정의) |
matchingGroup | 매칭 시 사용할 그룹 정보 |
payload | 추가 정보 |
|
inline |
객체를 해제
서버에 로그아웃 요청을 보내지 않기 때문에 이 코드의 호출 전 로그아웃 메서드를 호출해야 한다
|
inlineprotectedvirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
방에 입장
roomType | 방 타입(서버 설정에서 정의) |
roomId | 방 아이디 정보 |
matchingUserCategory | 매칭 유저 정보 |
payload | 추가 정보 |
|
inlinevirtual |
방에서 나온다
payload | 추가 정보 |
|
inlinevirtual |
게임 서버에 로그인
userType | 서버와 맞춘 유저 타입 |
channelId | 채널 정보 |
requestPayload | 추가 정보 |
ObjectDisposedException | 객체가 이미 해제됨 |
Exception | 기타 이유 |
|
inlinevirtual |
게임 서버에서 로그아웃
|
inlinevirtual |
|
inlinevirtual |
파티 매칭을 시작
반환값으로 응답을 받고 OnMatchPartyStart 로도 응답을 받는다
파티 구성원들은 OnMatchPartyStart 으로 응답을 받는다
roomType | 방 타입(서버 설정에서 정의) |
matchingGroup | 매칭 시 사용할 그룹 정보 |
payload | 추가 정보 |
|
inlinevirtual |
방 매칭 요청
isCreateRoomIfNotJoinRoom | 방이 없으면 생성 |
isMoveRoomIfJoinedRoom | 특정 상황에서 방을 옮겨갈 수 있다 |
roomType | 방 타입(서버 설정에서 정의) |
matchingGroup | 매칭 시 사용할 그룹 정보 |
matchingUserCategory | 매칭 방에 유저 카테고리 정보 전달 |
payload | 추가 정보 |
leaveRoomPayload | 만약 옮겨갈 때 사용할 추가 정보 |
|
inlinevirtual |
매칭 취소 요청
roomType | 방 타입(서버 설정에서 정의) |
|
inlinevirtual |
유저 매칭을 등록
이때 매칭 응답은 OnMatchUserDone, OnMatchUserTimeout 으로 받는다
roomType | 방 타입(서버 설정에서 정의) |
matchingGroup | 매칭 시 사용할 그룹 정보 |
payload | 추가 정보 |
|
inline |
지정한 채널로 이동
channelId | 이동할 채널의 아이디 |
payload | 추가 정보 |
|
inlinevirtual |
지정한 이름의 방에 입장
지정한 이름의 방이 없을 경우 지정한 이름의 방을 생성하고 해당 방에 입장
roomType | 방 타입(서버 설정에서 정의) |
roomName | 입장하는 방의 이름 |
isParty | 파티 여부 |
payload | 추가 정보 |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlinevirtual |
TResponse |
message | 서버로 보낼 프로토 버퍼 |
token | 취소 토큰, 만약 설정하지 않을 때는 기본 시간 제한 사용 |
TResponse | : | class | |
TResponse | : | IMessage | |
TResponse | : | new() |
|
inlinevirtual |
서버로 패킷을 보낸 후 응답 패킷을 대기
서버에 해당 패킷의 처리자를 작성 후 호출해야 한다
TResponse |
packet | 서버로 보낼 패킷 |
token | 취소 토큰, 만약 설정하지 않을 때는 기본 시간 제한 사용 |
TResponse | : | class | |
TResponse | : | IMessage | |
TResponse | : | new() |
|
inlineprotected |
|
inlinevirtual |
게임 서버의 유저로 패킷을 전송
message | 서버로 보낼 프로토 버퍼 패킷 |
|
inline |
방 입장 정보를 리셋
단순히 클라이언트 상에서 수치만 바꾼다
이 메서드는 테스트나 연결 오류 등으로 필요 시 사용할 것
정식 절차로 방에서 나오는것은 LeaveRoom 메서드를 사용할 것
|
inline |
서버에서 프로토 버퍼를 받았을 때 호출할 메서드를 지정
만약 이미 있다면 삭제하고 인자로 받은 메서드를 사용
(주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 않을 수 있음
TProtoBuffer |
callback | 호출할 함수 |
TProtoBuffer | : | class | |
TProtoBuffer | : | IMessage | |
TProtoBuffer | : | new() |
|
inline |
프로토 버퍼를 받았을 때 호출할 함수를 지정합니다 만약 이미 있다면 삭제하고 인자로 받은 함수를 사용합니다 (주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 읺을 수 있음
TProtoBuffer |
callback | 호출할 함수 |
TProtoBuffer | : | class | |
TProtoBuffer | : | IMessage | |
TProtoBuffer | : | new() |
|
inline |
프로토 버퍼를 받았을 때 호출할 메서드를 지정
만약 이미 있다면 삭제하고 인자로 받은 메서드를 사용
(주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 않을 수 있음
TProtoBuffer | 등록할 프로토버퍼 |
descriptor | 호출할 메시지의 descriptor, 프로토버퍼.Descriptor |
callback | 호출할 함수 |
TProtoBuffer | : | class | |
TProtoBuffer | : | IMessage | |
TProtoBuffer | : | new() |
|
inline |
프로토 버퍼를 받았을 때 호출할 함수를 지정합니다 만약 이미 있다면 삭제하고 인자로 받은 함수를 사용합니다 (주의) callback 은 비동기로 동작하므로 의도한 타이밍에 정확히 호출 되지 읺을 수 있음
TProtoBuffer | 등록할 프로토버퍼 |
descriptor | 호출할 메시지의 descriptor, 프로토버퍼.Descriptor |
callback | 호출할 함수 |
TProtoBuffer | : | class | |
TProtoBuffer | : | IMessage | |
TProtoBuffer | : | new() |
|
inlinevirtual |
현재 유저의 스냅샷 정보를 요청
재접속 등 유저의 모든 정보를 갱신해야 할 필요가 있을 때 사용
서버의 onSnapshot 메서드를 호출
payload | 추가 정보 |
|
getset |
채널 정보 만약 없다면 빈 문자열
|
get |
방에 입장해있는지 여부
|
getset |
로그인 하였는지 여부
|
get |
현재 파티 매칭 중인지 여부
|
get |
현재 매칭 중인지 여부
|
get |
방에 있을 때 방의 아이디
만약 아니라면 이 값은 0
|
get |
ServiceName 을 통해 가져온 서비스 아이디를 반환
|
get |
유저 생성할 때 지정한 서비스 이름을 반환
|
get |
인스턴스를 만들 때 사용한 SubId
|
get |
유저 아이디
만약 0이면 로그인이 풀렸거나 로그인하지 않았음
|
get |
로그인 시 지정한 유저 타입 정보
Action<GameAnvilUser, string>? GameAnvil.GameAnvilUser.OnAdminKickout |
관리자 기능으로 로그아웃 되었을 시 호출하는 이벤트
알림 문자열
Action<GameAnvilUser, int, Payload>? GameAnvil.GameAnvilUser.OnForceLeaveRoom |
방에서 쫒겨났을 시 호출하는 이벤트
방 번호(ID), 추가 정보
Action<GameAnvilUser, Payload>? GameAnvil.GameAnvilUser.OnForceLogout |
서버에서 로그아웃 명령을 받을 시 호출하는 이벤트
이 메서드가 호출되었다면 자동으로 서버에서 로그아웃 된다
추가 정보
Action<GameAnvilUser, ResultCodeMatchPartyCancel>? GameAnvil.GameAnvilUser.OnMatchPartyCancel |
파티 매칭 취소 시 호출하는 이벤트
오류 코드
Action<GameAnvilUser, ResultCodeMatchPartyStart, Payload>? GameAnvil.GameAnvilUser.OnMatchPartyStart |
파티 매칭 시작 시 호출하는 이벤트
오류 코드, 서버 추가 정보
Action<GameAnvilUser, ResultCodeMatchUserDone, MatchResult>? GameAnvil.GameAnvilUser.OnMatchUserDone |
유저 매칭 완료시 호출하는 이벤트
오류 코드, 결과
Action<GameAnvilUser>? GameAnvil.GameAnvilUser.OnMatchUserTimeout |
유저 매칭이 시간 초과로 취소되었을 때 호출하는 이벤트
Action<GameAnvilUser, MoveChannelResult>? GameAnvil.GameAnvilUser.OnMoveChannel |
채널 이동시 호출하는 이벤트
채널 이동 결과
Action<GameAnvilUser, string>? GameAnvil.GameAnvilUser.OnNotice |
공지 메시지를 받을 시 호출하는 이벤트
알림 문자열
Action<GameAnvilUser, ResultCodeSessionClose, Payload>? GameAnvil.GameAnvilUser.OnSessionClose |
이 유저의 연결이 끊어졌을 시 호출하는 이벤트
일반적인 로그아웃 외에 중복 로그인 등도 같이 처리
오류 코드, 추가 정보