2014-07-27 4 views
2

게임을 만들 예정입니다. 처음에는 브라우저 게임이 될 것입니다. 나중에 APP (Android, iPhone 게임)가됩니다.서버 이벤트에 대해 고객에게 즉시 알리는 것이 가장 좋은 기술은 무엇입니까?

서버 측에서는 nginx, apache, php를 사용합니다.

내가 다른 이벤트에 대한 온라인 플레이어를 알릴 필요

=================. 예 : 한 명의 사용자가 다른 사용자의 공격을받습니다. 즉시 그 사실을 알려야합니다.

고전 AJAX는 거기에서 잘못 할 수 없습니다. 혜성, 웹 소켓 및 기타 기술에 대해 읽었습니다. 하지만 여전히 이해할 수없는 솔루션은 무엇입니까? 결정에 협조 해주세요.

답변

0

아마도 서버 보낸 이벤트를 시도 할 수 있습니다.

에 SSE를 사용하면 페이지가 언로드되거나 연결에 문제가 있거나 연결을 수동으로 닫을 때까지 상수 연결이 유지됩니다.

때마다 문제가 발생합니다. 플레이어가 공격을 받으면 event 명령을 클라이언트에 보내면 이벤트 데이터에 따라 조치가 취해집니다. 아직 모든 브라우저에서 작동하지 않지만

는, 당신이

http://www.html5rocks.com/en/tutorials/eventsource/basics/가 SSE에 대한 더 자세한 explaination를 제공하고 선호하는 옵션한다

+0

SSE는 모든 버전의 Internet Explorer에서 지원되지 않습니다. – vtortola

+0

나는 알고 있습니다. IE에서는 longpolling을 사용할 수 있습니다. longpolling을 사용하면 이벤트가 발생할 때까지 연결이 열려 있습니다. 연결이 닫히고 새로운 연결이 다시 열리게됩니다. – brilletjuh

1

웹 소켓 그것을 설정하는 방법에 시도 할 수있는 기술이다. 광범위하게 지원되는 기술입니다.

그것은 모든 주요 브라우저 웹 소켓과 http://caniuse.com/websockets

0

이동과 호환 지속, 전이중 연결이다. 이 기능을 사용하면 클라이언트 브라우저에서 서버로 보낸 데이터 (예 : '사용자 A는 사용자 B를 공격')와 서버에서 단일 채널로 전송 된 데이터를 모두 처리 할 수 ​​있습니다. 이는 서버 리소스를 절약 해 주며 하나의 기술로 두 개의 별도 기술 (AJAX + 백 채널의 경우)보다 낫습니다.

또한 Android 및 iOS 용 WebSocket 용 라이브러리가 있으므로 향후에 기본 클라이언트를 연결할 수도 있습니다.

Publishers &과 같은 것을 사용하여 여러 클라이언트에 이벤트를 한 번에 배포해야하므로 WebSocket을 구독하는 것이 좋습니다.

Crossbar.io을 살펴 보시기 바랍니다. 공개 소스 응용 프로그램 라우터 인 &을 구독하십시오.

전체 공개 : 나는 Tavendo, Crossbar.io 오픈 소스 프로젝트의 창시자로 일합니다.