Apache Mina 개발 매 뉴 얼 4

Apache Mina 개발 매 뉴 얼 4
저자: chszs, 전재 설명 이 필요 합 니 다.
블 로그 홈 페이지:http://blog.csdn.net/chszs
1. 미 나 개발 의 주요 절차
1. IoService 인 터 페 이 스 를 실현 하 는 클래스 를 만 듭 니 다.
IoService 인 터 페 이 스 는 두 개의 키 인터페이스 가 있 습 니 다. 1) IoAcceptor 인 터 페 이 스 는 server 2) IoConnection 인터페이스 로 client 에 사 용 됩 니 다.
IoService 인터페이스의 목적 은 서 비 스 를 제공 하 는 것 이다.몇 가지 기본 구현: NioDatagramAcceptor, NioDatagramConnector NioSocketAcceptor, NioSocketConnectorVmPipeAcceptor, VmPipeConnector ProxyConnector 2, 필 터 를 설정 합 니 다.필 터 를 스스로 정의 해 야 한다 고 가정 하면 이 필 터 는 IoFilter 인터페이스 IoFilter 역할 을 실현 해 야 합 니 다.역할 은 Servlet 규범 의 필터 와 같 습 니 다.IoFilter 인터페이스의 기본 구현 이 많 고 내부 에서 만 사용 할 수 있 습 니 다.일부 사용자 가 사용 할 수 있 고 필터 의 순 서 는 프로그램의 실행 에 영향 을 줄 수 있다.
자주 사용 하 는 구현 클래스 는 다음 과 같 습 니 다: 1) Executor Filter: 이 필터 이후 의 모든 작업 은 이 Executor 2) LoggingFilter: 로그 작업 필터, 기록 로그 용 3) ProtocolCodecFilter: 프로 토 콜 층 과 업무 층 의 분 리 를 실현 합 니 다.
4) 프 록 시 필터: 프 록 시 필터, 요청 이나 응답 을 차단 하여 프 록 시 에 전달 합 니 다.
5) SslFilter: SSL 통신 3 에 사용 되 며, IoHandler 인 터 페 이 스 를 실현 하 는 처리 클래스 를 만 들 고, 이벤트 처리 업무 논 리 를 처리 하 는 데 사용 되 며, 특히 안에 있 는 IoSession 인 터 페 이 스 를 주의해 야 한다.4. IoService 에 port 를 연결 하여 작업 을 시작 합 니 다. 2. Mina 자체 정의 프로 토 콜
Mina 의 사례: org. apache. mina. example. chat: Spring, Jmx 지원, 자체 정의 프로 토 콜 org. apache. mina. example. imagine: Jmx 지원, 자체 정의 프로 토 콜 org. apache. mina. example. sumup: 자체 정의 프로 토 콜 org. apache. mina. example. tapedeck 지원: 상태 기 시범, 자체 정의 프로 토 콜 3, 프로 토 콜 디코더
프로 토 콜 디코더 는 ProtocolDecoder 인터페이스 에 의존 합 니 다:
public interface ProtocolDecoder{
  //                      
  void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out);
  //               
  void finishDecode(IoSession session, ProtocolDecoderOutput out);
  //              
  void dispose(IoSession session) throws Exception;
}

비동기 적 인 이유 로 전 달 된 IoBuffer 가 받 아들 인 내용 은 완전히 확정 되 지 않 았 다. 즉, IoBuffer 에서 한 번 receive 후 이다.저 장 된 것 이 반드시 완전한 협의 가 아 닙 니 다.여러 개의 불완전한 협의 일 수도 있다.마침 완전한 합의 일 수도 있 습 니 다.그게 다 확실 하지 않 아 요.
상기 상황 을 바탕 으로 실제 개발 은 보통 CumulativeProtocolDecoder 류 를 실현 하 는데 이 추상 류 의 역할 은 프로 토 콜 을 분석 하 는 데 도움 을 주 는 것 이다. 이 추상 류 는 ProtocolDecoder 인터페이스 중의 decode 인 터 페 이 스 를 실현 한다.그리고 doDecode 방법 을 추상적으로 추정한다.
doDecode 방법 은 프로 토 콜 을 해석 할 수 있다 고 가정 하고 이 프로 토 콜 을 분석 한 후 ProtocolDecoder Output 류 에 넣 고 true 로 되 돌려 달라 고 요구 합 니 다.반대로 false 로 돌아 갑 니 다.POS 를 수 동 으로 스크롤 백 해 야 합 니 다.
프로 토 콜 디코더 류 는 두 가지 작업 방식 이 있 습 니 다. 1) doDecode 처리 2) 논리 부분 은 doDecode 방법 으로 처리 합 니 다.IoBuffer 는 반 자기 주동 적 인 4. 프로 토 콜 인 코더 입 니 다.
프로 토 콜 인 코더 가 ProtocolEncoder 인터페이스 에 의존 합 니 다.
public interface ProtocolEncoder{
  //                      
  void encode(IoSession session, Object message, ProtocolEncoderOutput out);
  //                
  void dispose(IoSession session) throws Exception;
}

프로 토 콜 인 코더 가 필요 한 내용 을 한꺼번에 IoBuffer 에 기록 하고 ProtocolEncoder Output 에 맡 길 수 있 기 때문에 배경 은 버퍼 크기 에 따라 달라 집 니 다.ProtocolEncoder Output 에서 보 내야 할 프로 토 콜 을 모두 보 낼 때 까지 쓸 수 있 는 만큼 쓰 십시오.

좋은 웹페이지 즐겨찾기