서버 개발기
회원가입을 구현하고 회원가입의 예외처리를 구현했다.
예외처리 목록
- 비밀번호가 다를 때
- 중복된 닉네임이 존재할 때
- 중복된 아이디가 존재할 때
이에 경우에는 그에 맞는 panel이 띄워지게 코드를 작성했다.
!https://blog.kakaocdn.net/dn/XKJWl/btsGG6Ytezb/jr3GwPFw8tco31ngowdNkK/img.png
회원가입 부분 코드
비밀번호 확인은 유니티 클라이언트에서 처리했고,
회원가입 부분에서는 닉네임 아이디를 검사하고 문제가 없다면 회원가입을 진행했다.
!https://blog.kakaocdn.net/dn/cK2c60/btsGGmHsimV/4KRlukV8KTJtogwG9yF6K0/img.png
닉네임 중복 확인
!https://blog.kakaocdn.net/dn/1HTHB/btsGFf29K0T/fpkcrbkVjhZM0enGWdBSX1/img.png
아이디 중복 확인
각 확인 시 문제가 있다면 send() 함수를 통해서 클라이언트에 메시지를 보내고, 그에 맞는 panel이 띄워지게 하고, 성공했을 때는 0을 보내서 성공 panel이 뜨게 끔 코드를 작성했다.
!https://blog.kakaocdn.net/dn/SR29p/btsGFjxMAkH/1RvfwVHAyJ80I1bXNmT0Uk/img.png
클라이언트쪽 switch문
문제
!https://blog.kakaocdn.net/dn/bHcgSf/btsGGa8brw4/t2jR1EhlhK6E7UA4AzQ420/img.png
다른 숫자를 send해도 클라이언트쪽에서는 1만 수신 받았다.
무슨 문제인지 숫자를 바꿔보기도 하고, 다른 여러 방법을 사용했는데도 계속 1만 수신 받는 문제가 있었다.
int res = stream.Read(buffer, 0, buffer.Length);
return res;
이렇게 수신을 받아주고 있었는데, read()의 반환값은 성공했을때 1을 반환하기에 계속 1이 들어오고 있는 문제였다.
그래서 buffer에 있는 값을 int로 바꿔주어 전송하는 것으로 이 문제를 해결했다.
int ReadData()
{
byte[] buffer = new byte[1024];
stream.Read(buffer, 0, buffer.Length);
string data = Encoding.UTF8.GetString(buffer);
Debug.Log(data);
return int.Parse(data);
}
이렇게 회원가입을 구현완료 했다.
로그인도 비슷하게 구현해주었다.
id가 데이터베이스에 존재하는지 검사해주고, 존재한다면 그 id의 pw를 찾아와 입력한 pw와 일치하는지 검사를 했다.
코드는 비슷하니 올리지는 않겠다. 그에 따라서 위와 비슷하게 클라이언트에 전송을 해주고, 클라이언트에서는 그 값을 받아 panel을 띄우거나 씬을 이동하는 행동을 진행하게 했다.
씬을 이동할 때, 함수가 작동을 안하길래 왜일까 고민을 했는데, 유니티 씬빌드에 씬이 들어가 있어야 씬 이동을 할 수 있다는 것을 까먹고 있었다.
!https://blog.kakaocdn.net/dn/brun6x/btsGCXJmWFZ/5RY2ORfPYR00vUKhMQbxW0/img.png
씬을 이동하는것과 동시에 연결을 끊어주고 다시 연결을 했다. 사실 그럴 필요는 없지만 분산서버를 나중에 구현하고자 연습해보았다.
게시판 포스트를 구현하고, db에서 게시판 데이터를 가져와서 동적으로 만드려는 작업을 진행중인데, 잘 진행되지 않는다.
비동기문제때문에 일어나는 것같다.... 어찌 해결해야할까
아..
일단 한번에 데이터를 받아오는것으로 해결했다.
동적 생성 후 만드는 것도 처리했다.
id를 통해서 받아오는 것도 프리팹을 만드는 것도 처리했다.
게시글을 만드는것까지 끝
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.04.18 AWS 강연 (1) | 2024.04.18 |
---|---|
24.04.17 서버 개발기, git readme 작성 (0) | 2024.04.17 |
24.04.15 서버 개발기 (0) | 2024.04.16 |
24.04.14 서버 개발기 (0) | 2024.04.15 |
24.04.13 서버 개발기, C++ (0) | 2024.04.14 |