2009-10-24 2 views
1

이제 내 목표는 가장 빠른 퍼즐을 완료 할 수있는 사람을보기 위해 머리를 맞대고 싶은 다른 사용자를 검색하는 것입니다. 회원 공급자를 통해 현재 온라인 상태 인 사용자를 신고 할 생각이 있습니다.ASP.NET을 사용하는 멀티 플레이어 게임 세션에서 방향이 필요합니다.

저는 서버가 두 개의 다른 사용자 세션에 동일한 퍼즐을 한 번에 전송하고 누가 퍼즐을 먼저 완료했는지 들어 보았습니다.이 퍼즐은 ASP.NET에서 얼마나 실현 될 수 있습니까? 아니면 다른 기술을 조사해야합니까?

감사합니다.

+0

퍼즐은 웹 기반입니까, 아니면 응용 프로그램 기반입니까? – Dani

+0

웹 기반, 나는 이것이 풍부한 클라이언트가 될 필요는 없다고 생각합니다. 그것은 단순히 두 사용자가 모두 준비되었는지 확인한 다음 서버가 동일한 퍼즐로 리디렉션하고 누가 먼저 퍼즐을 완료하는지 듣는 것입니다. – jr3

답변

1

ASP.NET에서 설명 할 수있는만큼 생각합니다.

온라인 상태의 사용자를 추적하려면 사이트가 너무 크지 않으면 메모리에서 추적 할 수 있습니다. 이것은 사이트가 새로 고쳐지면 지워질 것이며, 여러 대의 서버로 확장해야하는 경우에는 작동하지 않을 것이지만 아직 걱정스러운 것은 아닙니다. 사용자 이름을 사용자 상태에 매핑하는 사전을 유지하십시오.

이것은 아주 단순한 접근 방식이지만 무엇이든간에.

상태를 업데이트하여 온라인 상태인지 확인하는 한 가지 방법은 호출자가 온라인 상태인지 확인하고 상태를 업데이트하는 HttpModule을 작성하는 것입니다. HttpModule에는 사후 인증을 실행하여 사용자 상태를 업데이트하는 이벤트가 있습니다. 마지막 활성 시간도 추적합니다.

'퍼즐 보내기'가가는 한 다른 일이 있습니다. 사용자가 퍼즐을 찾기 위해 페이지를 방문하기에 충분하다면 현재 퍼즐을로드하는 페이지를 추가하십시오. 사람 퍼즐이 사용자 작업없이 나타나야하는 경우, AJAX를 사용하여 몇 초마다 새로운 퍼즐이 있는지 확인하는 방문 페이지를 만들 수 있습니다.

+0

이상적으로는 두 플레이어가 모두 준비되었다는 사용자 확인을 기다린 다음 서버가 동일한 퍼즐로 리디렉션하도록합니다. 아니면 비슷한. – jr3

0

스마트 클라이언트가이를 수행하는 가장 쉬운 방법이지만 클라이언트에 "게임"을 다운로드해야합니다. ASP.NET은 웹 기반 경험을 제공하지만 동시에 클라이언트에게 퍼즐을 보내는 것이 더 어려울 것입니다 (로컬 브라우저가이 이벤트를 기다리는 것을 강요합니다 ...) - 나머지는 ASP에서 쉽습니다. 그물.

관련 문제