저는 Unity를 사용하여 멀티 플레이어 RPG 게임을 프로그래밍하고 있으며, 전투 장면에서 플레이어는 자신이 사용하는 공격을 결정해야합니다. 플레이어가 공격 버튼을 누르면 플레이어는 게시물 요청을 서버에 보냅니다. 서버는 게시물 요청이 합법적인지 아닌지를 확인한 다음 요청이 합법적 인 경우 서버가 데이터베이스 값을 "켜기"로 설정하거나 정확하게 "0"에서 "1", 즉 "attack_determined"라고합니다.5 초당 데이터베이스 값을 확인하는 데 10000 개 이상의 사용자 수가 많으면 비용이 많이 듭니까?
문제는이 값을 확인하기 위해 다시 HTTP 요청을해야한다는 것입니다. 전투에는 최대 6 자까지 가능하며, 모든 사람이 attack_determined이 0 또는 1인지 확인하려는 경우 공격 요청 당 6 건의 요청을 처리합니다. 예를 들어 사용자 수를 10000으로 늘린다면 생각하고 싶지 않습니다. 내가 사용하고있는 VPS 서버에 대한 이러한 요청을 처리하는 것은 매우 어려울 것입니다. 요청 횟수를 줄일 수있는 방법이 있습니까? 나는 소켓을 사용하고 싶지 않다. 세션이나 memcache를 사용하려고 생각했다. 나는 서버 측에 PHP를, Unity 클라이언트 측에 C#를 사용하고 있습니다.
이것은 대화식 무언가를 디자인하는 것이 정말 나쁜 것처럼 보입니다. –
@DavidSchwartz에 동의합니다. 아키텍처에 대해 다시 생각해보아야합니다. – Eimsas
웹 소켓 (웹 브라우저 UI 일 수도 있고 전용 소켓 프로토콜이 아닌 http를 사용하는 클라이언트 응용 프로그램 일 수도 있음)이있는 경우 웹 소켓은 * 적절한 접근 방법 *입니다. 현재 수행하려는 작업에 맞게 확장됩니다 (웹 소켓 서버의 현재 연결 용량은 450k입니다). 몇 초마다 HTTP 조사 : 우리를 즉시 죽일 것입니다. 다른 모든 트래픽을 동일한 웹 소켓에 결합하면 더욱 좋습니다. –