2012-01-21 2 views
0

간단한 넷티 서버를 가정하십시오.Netty : 두 채널 연결

첫 번째 클라이언트가 연결되면 채널이 기억됩니다. 두 번째 클라이언트가 연결되면 첫 번째 채널에 연결하여 첫 번째 채널에 기록 된 모든 내용을 두 번째 채널에 기록하고 두 번째 채널에 기록 된 모든 내용을 두 번째 클라이언트에 기록합니다.

마지막으로 간단한 응용 프로그램은 telnet-to-telnet 채팅과 같은 것입니다.

답변

2

두 채널을 모두 DefaultChannelGroup에 추가하고 그 참조를 저장하십시오. 그런 다음 채널에 쓸 때 ChannelGroup에서 write (...) 메소드를 호출하기 만하면됩니다.

+0

채널 그룹에 쓰여진 메시지가 그룹의 모든 클라이언트, 즉 발신자에게 전송되지 않습니까? – Dennis

+0

예, 양쪽에 메시지를 보냅니다. –

0

아시다시피, 두 개의 소켓 채널을 연결하는 어려운 방법은 없습니다. (그러나 비 소켓 채널을 연결하는 방법, LocalChannel을 사용하는 두 개의 로컬 채널, IOStreamChannel을 사용하는 임의의 입력 출력 스트림).

이 문제는 channelConnected(), channelDisconnected() 및 messageReceived()의 해시 테이블에 채널을 추가/제거하는 파이프 라인에서 브리지 채널 처리기 (extends SimpleChannelHandler)를 사용하면 해결할 수 있다고 생각합니다. 올바른 피어 채널을 선택하고 메시지를 작성하십시오.

관련 문제