일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이널 IK
- 프로퍼티
- 유니티 그래픽스 최적화 스타트업
- error
- c#
- Effective C#
- tutorial
- 익명 타입
- 에러
- 리깅
- 쓰는 법
- 2판
- 사용법
- unity
- 애님
- 튜토리얼
- 속성
- 쉐이더
- 오류
- 유니티
- shader
- github
- NavMesh
- Final IK
- 유니티 그래픽 최적화
- 리팩토링
- 메모리
- 깃허브
- 애니메이션
- 최적화
- Today
- Total
참치김밥은 최고의 한식이다
[개발 지식 + 유니티] Socket.IO 와 BestHTTP 란??? 본문
개인 노션에 정리해놓았던 글들을 블로그로 이사시키는 중이다.. 😂😂 파이팅!!
유니티 에셋 스토어에는 HTTP 소켓 통신을 편리하게 도와주는 Best HTTP 가 있다.
이 Best HTTP는 Socket.IO 통신을 제공하는데, Socket.IO가 뭔지 궁금해서 찾아보았다.
아 그 전에 소켓이 뭔지부터 짚고 넘어가야겠다!!
소켓이란?
- 프로토콜, ip address, port number로 정의됨
▷ 프로토콜 : 한 시스템이 다른 시스템과 통신을 원활하게 하기 위한 통신 규약
- 두 호스트를 연결하는 도구
- 두 호스트가 데이터를 양방향으로 주고받을 수 있도록 함
- 실시간으로 이루어짐
앗! 데이터를 주고받을 수 있다면, 일반적인 HTTP 통신과 뭐가 다르냐고???
HTTP 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답을 하는 단방향 통신이지만,
소켓 통신은 클라이언트와 서버 간 데이터 통신이 양방향으로 이루어진다.
+추가) 소켓 종류??
TCP
- 양방향으로 바이트 스트림 전송
- 흐름 제어 보장
▷ 송신된 순서에 따라 데이터를 수신하므로, 오버헤드 발생 가능
- 대량의 데이터 전송에 적합
UDP
- 비연결형 소켓 (따라서, TCP와 달리 연결 설정 안 해도 됨)
- 흐름 제어를 보장하지 않아, TCP보다 빠름
- 데이터 크기에 제한 있음
- 데이터가 손실돼도 오류가 발생하지 않아, 확실한 전달이 어려울 수 있음
- 이러한 이유로 실시간 멀티밈디어 송수신에 주로 사용됨 (전화)
그럼 이제 Socket.IO가 뭔지 간단히 살펴보자~~
Socket.IO란?
- Socket.IO는 Node.js 기반의 웹 소켓 라이브러리이며, 실시간 양방향 통신을 가능하게 해준다.
- 클라이언트와 서버 사이의 연결을 지속적으로 유지하며, 실시간으로 데이터를 주고받는 데에 유용하다.
( → 특히 게임 내 채팅이나 실시간 업데이트에 유용할 듯)
- 특히, Socket.IO에는 “방” 개념이 있어서, 특정 유저에게만 이벤트를 보낼 수도 있다!
마지막으로..
BestHTTP 간단 사용법 정리
Emit 을 통해 이벤트를 전송할 수 있다.
manager.Socket.Emit("chat message", "msg 1");
On<T>(”이벤트명”)로 이벤트를 구독하고, 받을 데이터형을 지정할 수 있다.
manager.Socket.On<int, int>("message", (arg1, arg2) => Debug.Log($"{arg1}, {arg2}"));
Emit을 통해 이벤트를 전송할 때에, 콜백이 필요한 경우가 있다.
이벤트 전송 후의 콜백은 ExpectAcknowledgement로 만들 수 있다.
class ReturnVal
{
public int code;
public string msg;
}
manager.Socket.ExpectAcknowledgement<ReturnVal>(OnAcknowledgements).Emit("chat message", "msg 1");
private void OnAcknowledgements(ReturnVal value)
{
Debug.Log($"{value.code}, '{value.msg}'");
}
공식 문서 :
https://besthttp-documentation.readthedocs.io/en/dev/3.1Socket.IO3/
'Unity' 카테고리의 다른 글
[유니티] Unity로 오픈월드를 만드는 과정과 기능 개발 (2) (0) | 2024.02.22 |
---|---|
[유니티] Unity로 오픈월드를 만드는 과정과 기능 개발 (1) (0) | 2024.02.22 |
[유니티] 텍셀과 픽셀의 차이? (0) | 2024.02.20 |
[유니티] Force Field 쉐이더 만들면서 이해 안갔던 부분 정리 (0) | 2024.02.20 |
쉐이더 첫 공부할 때 쓴 문서.. (0) | 2024.02.20 |