우리가 지금 SendBuffer를 큰 것을 할당한 다음에
이것을 쪼개서 사용을 하고 있었다.
공용으로 크게 하나를 관리를 해가지고 sendbuffer를 필요로하는 session한테 이 sendbuffer를 꽂아주는 방식이였는데
open close 방식으로
아주아주 큰 버퍼를 할당을 한다음에 쪼개서 사용하는 개념으로 만들었다.
그래서 어떤 세션에서 이 sendbuffer를 성공적으로 다 전송하지 않고 조금 남아있다고
하면은 이 큰 버퍼가 해제되지 않고 남아있는 -> 메모리가 증가하는 단점이 있다.
그래서 이 sendbuffer.cs파일은 과감히 삭제하고
다른 방법을 보여 줄 것이다.
https://developers.google.com/protocol-buffers/docs/csharptutorial
google -> google protobuf c#
그래서 이 단계를 거처서 뭔가를 해보도록 할 것이다.
그런데
이것을 하기 전에
프로토 버프를 만들어주는 "변환기"를 다운 받아야 함.
https://github.com/protocolbuffers/protobuf 에서
https://github.com/protocolbuffers/protobuf/releases/tag/v3.12.3
이버젼으로 다운 ㄱㄱ
그런데 우리가 빌드를 할것은 아니라서
밑에 이거 다운로드 받으면 된다.
그리고 우리 프젝 폴더에 Common 폴더 만들고 압축해제 ㄱㄱ
그리고 bin에 가보면
이게 있는데 이게 뭐냐면은
비유를 하자면
우리가 PacketGenerator를 만들었었는데
여기 bin -> exe파일이 우리만의 "변환기"였다.
이렇게 패킷을 정의를 한 것을 실질적으로 자동화된 코드로 변환하는 변환기 역할인데
이것이 우리가 다운받은 protc.exe 라는 애가 해준다고 보면된다.
protobuf에서 제공하는 문법대로
PDL.xml로 만든것 처럼 format자체를 어떻게든 만들어서 넣어주는 단계를 거치면된다.
우리가 이전에는 PDL.xml로 했는데
.proto 로 해야한다.
구글에 나와있는대로 이렇게 해주고
그다음 이부분이 있는데
이것은 여기있는 프로토 파일은 C#파일로 변환을 할 때
그 namespace자체를 의미를 하는 것이다.
그 다음 이 테스트 하는 부븐 복붙해서 그대로 테스트 해보도록 하자.
이렇게 어쩌구 이 코드입력해서 실행을 해라 어쩌구 있는데
그런데 우리가 변환기를 다운을 받았었다.
여기다가 직접 커맨드를 날려도되지만 "배치"파일을 만들면 조금더 나을듯?
이전에 배치 파일 만들었었다.
이거 복붙하자 Common -> bin 에다가
주석 처리 ㄱㄱ
서버 붙일라믄
파일 올린거 Common, Server 다운받아서 사용하면된다.
그리고 이제 프로토 버퍼를 유니티에서도 설치 하는 방법 함.
일단 이번 시간 파일 다운 받으면
서버 켜둔 상태에서 유니티 실행하면
이까지 확인이 가능하다.
하나도 이해가 안가고 시간 존나 많이썻다...