2011-11-09 6 views
1

웹 플레이어를 사용하여 플레이어의 위치와 상태 등을 통신하는 멀티 플레이어 Javascript/캔버스 게임을 개발 중입니다. 자바 스크립트로 코딩하는 것이 편하지만 서버 측 웹 소켓 작업입니다. 문제가 생겼어.로컬 웹 서버에 웹 소켓 지원 추가

클라이언트 사이드 자바 스크립트를 지나서 WebSocket 지원을 어떻게 구현해야하는지 잘 모르겠습니다. Apache에 모듈을 추가합니까? PHP로 할 수 있습니까? node.js와 같은 것을 사용합니까? 내가 아는 한 node.js는 이런 종류의 물건에 대해 많은 칭찬을 받았지만, 웹 서버가 아닌 다른 것이 무엇인지 아직도 알지 못합니다.

+0

Node.js'require ("net"). createServer' 함수로 소켓을 지원하는 기본 서버를 매우 쉽게 만들 수 있습니다. 이전에 http://stackoverflow.com/q/7045885 (클라이언트 -> 서버 메시지 디코딩)에서 의사 코드를 게시 한 WebSocket 프로토콜을 구현해야합니다. 사용 가능한 Node.js 용으로 바로 사용할 수있는 WebSockets 라이브러리도 있습니다. – pimvdb

답변

4

크로스 - 브라우저 호환 웹 소켓 스타일 라이브러리 인 socket.io과 함께 nodejs를 사용하는 것이 좋습니다. 실시간으로 서버 (== nodejs)와 통신하는 코드를 작성하는 것이 정말 간단합니다. 브라우저를 지원하는 브라우저에서 웹 소켓을 사용하지 않는 브라우저에서는 웹 소켓을 사용합니다.

PHP에 관해서는 언급 했으므로 ... 필자가 아는 바와 같이 PHP 스크립트는 요청 기간 만 있기 때문에 내 의견에는 적합하지 않습니다. PHP로 자신의 서버를 돌리거나 아파치를 건너 뛰지 않는 한이 동작으로 인해 실시간 통신을 구현하기가 어렵습니다.

또 다른 대안으로는 파이썬을 사용할 수 있으며 Twisted과 같은 것을 사용할 수 있습니다. 웹 소켓이나 직접 구현해야 할 수도 있습니다.

+0

감사합니다. 나는 nodejs와 socket.io를 맹렬히 살펴볼 것이다. 내가 PHP를 언급 한 이유는 PHP 웹 소켓 서버를 발견했기 때문입니다. PHP 웹 소켓 서버는 명령 줄에서 실행되며 스크립트는 메시지를 계속 확인하면서 처리하고 응답을 다시 실행합니다. 분명히 PHP가 의도 한 바가 전혀 아니므로 필자는 그것을 사용하기를 꺼려했다. –