TIL(Today I Learned)

[Unity] API 통신 - TIL#40

Najdorf 2024. 2. 26. 21:19
728x90

API 통신

단방향 통신은
Http, Https(security), 웹통신

양방향 통신은
소켓통신, TCP/UDP

서로의 게임 상태를 동기화할 때 보통 양방향을 쓴다.
Unity에선 photon이란 걸로 구현함

클라이언트 - 서버끼리는 보통 툴, 언어가 다 다름
그럼 서로 어떻게 정보를 주고받나?

하나의 규칙을 만드는 것이다.
데이터의 규격을 만들어 놓음

문자열(String)은 대부분 어떤 언어든 다 가지고 있어서
이걸로 소통함.
이게 보통 많이 쓰는게 json.

즉, 클라이언트 -> json 변환 -> 서버 처럼 작동함.
문자열로 보낸다곤 했으나 문자열 자체를 보내는 원리는 아니고
json을 byte로 변환해서 보낸다.

'다른 곳에서 데이터를 사용할 수 있도록 데이터를 변환하는 것'을
'직렬화(Serialize)'라고 한다.


동기 비동기
동기 : 순서대로 코드 실행 시 예를 들어 메서드가 끝나기 전까진 다음 코드가 실행되지 않는것.
비동기는 동기의 반대

Unity에서 비동기를 쓸 수 있게 하는 건 대표적으로 코루틴이 있다.

UnityWebRequest로 웹통신 가능

UnityWebRequest req = UnityWebRequest.Get(url);

yield return req.SendWebRequest();

if (req.result == UnityWebRequest.Result.ProtocolError || ...)
{
	//에러처리
}
else
{
	//통신 결과 처리
}

 

728x90