음 소켓 통신을 필요로 했기 때문에 ..
우선 node.js socket.io 를 설치 해줍니다..
npm install -g socket.io
저는 node.js를 작업할 툴로 이클립스를 사용하고 있기 때문에 이클립스가
D경로에 있습니다 .
그래서 그런지 간단한 서버를 작동해도 socket.io를 설치했음에도 모듈을 못찾는다는 에러가 나오더군요 (아마 설치된 경로나 이런걸 못찾고 있는듯..) 이럴때는
인터넷에 검색해보시면 또 많은 방법이 나오는데 저 같은 경우는
작업하는 폴더에서 쉬프트 + 오른쪽 클릭 하셔서 여기서 명령창 열기를 한후 npm install socket.io@0.9.6 명령어를 사용하여 작업 폴더에 모듈이 바로 설치되게 했습니다.
이러니 오류없이 잘 되더군요 근데 명령어 뒤에 보시면 0.9.6 버전을 설치했는데
음 무슨 이유인지는 모르겠으나 최신버전으로 하니 작동이 안되더군요 아무 반응이 없음..
그래서 다른 버전으로 했더니 잘 반응하고 작동을 했읍니다..
우선 유니티에서 셋팅을 해줘야 할것이 있습니다.
socket.io 플러그인을 설치해줘야 하는데
https://github.com/NetEase/UnitySocketIO 이 링크로 가시면 다운 받으실수 있습니다.
(다른 소켓 라이브러리들도 많음... 더 좋은게 있을수도)
귀찮으시면 바로 받으세요 ..
받으시면 SocketIO\Bin\Debug\ 폴더 안에 있는 모든 파일들을 유니티 프로젝트에 복사해줍니다.
그럼 셋팅은 완료됫고 이제 유니티에서 소켓을 생성하고 서버에 연결후 데이터를 받아오는거 까지 해보겠습니다.
우선 위에 SocketIOClient 네임 스페이스를 추가해주셔야 됩니다. using SocketIOClient;
url은 이제 서버의 ip주소 와 포트번호를 입력해주시고.. 127.0.0.1은 자기 컴퓨터 주소입니다..
정말 되게 테스트만 해본거라 딱히 뭐 코드도 별로 없습니다.
유니티 플레이를 하게되면 소켓을 생성한후 해당 url로 소켓을 연결하고
람다식을 이용했는데.. 람다식은 그냥.. 코드 내용을 간결하게 하면서 사용할수 있는.. 익명 함수라고.. 설명하면 될듯하고... 굳이 안해도 되는데 그냥 한번 써보고 싶었음...
아무튼 socket.on 함수는 서버쪽에서 MsgRes 라는 이벤트가 발생하면 보내오는 데이터를 받아서 간단하게 출력하는 부분입니다.
test() 함수는 버튼을 누르면 반응하게 만들었고 버튼을 클릭했을시 socket.emit 함수를 발생시키는데 emit는 Msg라는 이벤트를 작동해라 라고 서버에게 넘겨주면서 동시에 데이터로 문자열을 보내고 있습니다.
유니티는 이정도로 셋팅을 했고.. 이제는 nodejs 서버쪽을 해보겠습니다..
socket.io 모듈을 불러오고.. 포트번호 999로 설정해 줍니다.
connection 이벤트가 발생할시 .. 즉 클라이언트에서 연결 요청이 올시 연결됫다라는 connected! 문자 출력한번 해주고요..
그후 연결된 소켓으로 Msg 이벤트가 요청이 오면 받은데이터를 콘솔로 출력후 emit 함수로 다시 클라이언트에게 MsgRes 이벤트를 발생시키게 함과 동시에 데이터를 보내주는 역할을 하는 서버입니다..
이제 node.js 를 통해서 server 를 실행시켜 주시고
유니티를 플레이한후 버튼을 눌러주시면..
유니티 콘솔창에는 제가 서버로 보냇던 데이터 문자열이 다시 저에게로 돌아와서 출력이 되었고
node.js 에선 음.. 한글 인코딩이 좀 이상하게 깨지긴 햇는데 아무튼 서버에서도 재대로 데이터를 받았고 뭐 자기 할일을 잘했다는걸 볼수 있습니다.
우선 연동 확인 테스트 까진 됬고 이제 좀 더 공부해보면서 본격적으로 더 해봐야 겠습니다~
'Unity' 카테고리의 다른 글
유니티(C#) 잡다한.. 최적화 기법.. 정리中 (1) | 2018.02.05 |
---|---|
[NGUI] depth 관련 해서.. 혼자 정리 (0) | 2017.01.23 |
[펌] 유니티 리소스들 최적화 TIP (0) | 2016.08.04 |
[펌] 유니티 최적화 배칭, 드로우콜 (0) | 2016.08.04 |
[펌] 유니티 메쉬 정점 갯수 최적화 (0) | 2016.08.04 |