본문 바로가기

프로그래밍

웹소켓 클라이언트가 socket.io 서버에?

 

결론은 안된다.

 

어찌보면 당연한것....

 

실시간 통신이 필요한 게임 서버를 만들면서

node.js 로 처음 작업하게 되었다.

 

html5 게임을 만들고 있고

클라이언트들은 기존에 웹소켓으로 구현을 해둔게 있고

서버를 java spring을 쓰고 있어서

 

간단한 보드 게임류에 쓰려고

서버를 따로 node.js 사용해 구현 중이다.

 

node.js 를 처음 접하면서

socket.io를 사용하게 되면 room 구조 덕분에

서버 코드가 굉장히 간단해진다.

 

mmorpg가 아닌 대부분의 룸 구조를 가진

게임에 쓰라고 만들어 둔것 마냥 편하다.

 

socket.io 서버 예제를 보면

채팅 밖에 없는데

 

사실 채팅 서버나 게임 서버나 

다를게 없지.

 

그래서

클라이언트 작업을 좀 줄여주려고

그냥 웹소켓 기존대로 쓰고

나는 socket.io를 쓰려고 했는데

 

띠용.

 

 

socket.io 는 네트워크 플랫폼 중에 하나라서

웹소켓 대체제가 아니다.

 

여러 클라이언트 환경을 고려해서

쉽게 네트워크 환경을 만들어 주는 것 뿐이다.

 

어쩔때 polling 으로

가능하면 websocket 으로

 

자기가 알아서 핸드쉐이크하고

연결하고 하트비트 보내고 

이벤트도 하이레벨로 올려서

코드단에서 편하게 해주고.

 

튜토리얼과 예제를 보면

socket.io 서버를 생성할 때

websocket만 쓰겠다고 강제할 수 있다.

 

그래서 처음 접하는 서버 개발자들은

나처럼 바로 웹소켓만 열어주는거구나

오해할 수 있다.

 

안되니깐...

어떻게든 클라이언트도 socket.io 쓰자고

 

꼬셔라.

 

클라이언트도 raw websocket 쓰는 것보다

socket.io를 쓰면

이벤트 단위로 콜백만 연결해주면

패킷 파싱해서 연결하는것보다는

코드가 깔끔해지니깐

 

이걸로 꼬셔봐라.