Java로 게임 서버를 작성하고 있습니다. 게임 서버에서 일반적으로 사용되는 한 클라이언트가받은 데이터를 가져와 클라이언트 방 (다른 클라이언트)을 통해 배포해야합니다. 현재 각 클라이언트는 자체 스레드를 생성하고 그 위에 작업합니다. 그러나 플레이어 간 관계를 정의하는 데 문제가 있습니다. 같은 방에있는 다른 모든 플레이어에게 메시지를 보내야하는 채팅과 같은 것을 어떻게 제어합니까? 나는 모든 스레드가 종종 메시지를 찾아서 자신의 클라이언트로 보내는 메시지 큐와 같은 것을 생각하고있다.Java 다중 스레드 서버
또한 멀티 스레드를 한꺼번에 처리 할 수있는 제안이 있지만 NIO에 익숙하지 않으며 서버는 이미 Socket
및 Thread
으로 작성되었습니다.
요약 : 내 고객 (스레드)이 서로 이야기하게하려면 어떻게해야합니까? 아니면 거기에 더 나은 스레드가 아닌 대안?
Netty와 같은 일부 프레임 워크를 사용하면 훨씬 쉽게 응용 프로그램을 확장 할 수 있습니다. 연결된 클라이언트에게 데이터를 브로드 캐스팅하는 것이 간단한 작업이 될 것이라고 확신합니다. 약간의 학습 곡선이있을 수 있지만, 그만한 가치가있을 것입니다. –
@JurgenCamilleri 내가 netty 시작 설명서를 읽을 때 나는 열중했다. 이렇게 많은'건축업자'와'공장'은 나를 울게한다! 당신은 그것을 배우기위한 더 나은 자료를 알고 있습니까, 아니면 그것은 진실이고 검증 된 방식입니까? –
Netty에 대한 제 경험으로 방금 예제를 작성하고 직접 시도하기 시작했습니다. 그때 내가 필요로했던 것들을 위에 쌓아 놓기 시작했고, 내가하지 않은 것을 버렸다. 이 YouTube 채널에는 유망 해 보이는 시리즈가 있습니다. https://www.youtube.com/channel/UCIA0yteJXa5JgRqxFJYQbEQ –