2014-04-13 2 views
1

Netty 프레임 워크와 함께 UDP 세션 관리 시스템을 설정하는 데 문제가 있습니다. 나는 UDP 원격 클라이언트 당 새로운 것에 대해 혼란 스럽다. 모든 새로운 UDP 원격 클라이언트에 대해 해당 클라이언트가 새 ChannelPipelineFactory를 얻지 않습니까? 아니면 새 원격 클라이언트마다 새 채널이 만들어 집니까?Netty UDP 세션 관리

두 개의 포트, 포트 161 및 포트 162 모두 UDP 포트이며 둘 다 많은 UDP 클라이언트로부터 데이터를 수신합니다. 어떻게 고객을 구별 할 수 있습니까? RemoteAddress이 제공하는 세션 관리 서비스를 만들었지 만 ChannelHandlerContext 속성() 체인에 연결하는 것이 안전한 지 여부는 잘 모르겠습니다.

답변

1

UDP는 연결이 적기 때문에 DatagramPacket.sender 만 메시지를 적절한 세션으로 라우팅 할 수 있습니다. 개념적으로 하나의 ChannelPipelineFactory 만 있고 사실 응용 프로그램의 UDP는 하나만 Channel입니다. 내가 아는 한 ChannelHandlerContext을 부착하는 것은 안전하지 않습니다. 여러 클라이언트를 다루는 방법은 의 키를 DatagramPacket.sender 주소 및 값인 session으로 사용하는 것입니다.

+0

고맙습니다. 나는 그것이 유일한 방법이라고 생각했지만 완전히 확신하지 못했습니다. –