• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Broadcast 에 대해 질문 있습니다

21.11.16 18:42 작성 조회수 108

0

void GameSessionManager::Broadcast(SendBufferRef sendBuffer)
{
	WRITE_LOCK;
	for (GameSessionRef session : _sessions)
	{
		session->Send(sendBuffer);
	}
}

만약 사용자가 엄청 많이 접속해 Session 도 그만큼 증가 하게 되었고,

모든 사용자가 위치동기화를 위해 나의 위치를 Broadcast 를 통해 실시간으로 지속해야 하는 상황에서 위 코드에서 WRITE_LOCK 때문에 병목현상이 일어날 수 있지 않을까 ? 라는 생각을 해봤습니다. 

만약 일어날 경우, 이런부분을 조금이나마 해결할 수 있는 방법은 무엇이 있을까요 ?
그렇지 않은 경우, 제가 학습에서 놓친 부분은 어떤 부분이 있을까요 ?

답변 1

답변을 작성해보세요.

2

관련된 주제가 JobQueue에서 내옵니다.
그리고 실제로 유저가 몰리면 부하가 급격히 상승합니다.
사실 MMO에서 중요한건 '동접'이 아니라
같은 지역에 몇 명이 모여있느냐? 가 핵심입니다.