2014-02-20 9 views
1

나는이 링크에서 github에서 소스를 다운로드했다 : https://github.com/twitter/cloudhopper-smppCloudhopper SMPP - 다른 클라이언트에서 보낸 메시지 내용을 얻는 방법?

나는 서버와 2 개의 클라이언트를 생성하기 위해 클라이언트 간의 메시지 수신을 테스트하려고한다. 서버를 실행하려면 "make server"명령을 사용했습니다. 그런 다음 다른 컴퓨터에 클라이언트가 내 서버에 연결된 전화 번호가 다른 클라이언트에 1 메시지를 보내 "123456"전화 번호가 클라이언트가 "123456"의 메시지 내용을 얻을 수있는 방법 코드

submit0.setSourceAddress(new Address((byte)0x03, (byte)0x00, "654321")); 
submit0.setDestAddress(new Address((byte)0x01, (byte)0x01, "123456")); 
submit0.setShortMessage(textBytes); 

SubmitSmResp submitResp = session0.submit(submit0, 10000); 

다음 사용 전화 번호 "654321"?

감사합니다.

답변

3

이 같은 sessionHandler를 작성,

DefaultSmppSessionHandler sessionHandler = new ClientSmppSessionHandler(); 

이 ClientSmppSessionHandler

는 DefaultSmppSessionHandler로 확장되어야한다. 두 개의 수신기가 있습니다. 아래 예를 참조하십시오.

public class ClientSmppSessionHandler extends DefaultSmppSessionHandler { 

private static final Logger logger = LoggerFactory.getLogger(ClientSmppSessionHandler.class); 

public ClientSmppSessionHandler() { 
    super(logger); 
} 

@Override 
public void firePduRequestExpired(PduRequest pduRequest) { 
    logger.warn("PDU request expired: {}", pduRequest); 
} 

@Override 
public PduResponse firePduRequestReceived(PduRequest pduRequest) { 
    PduResponse response = pduRequest.createResponse(); 
    logger.info("SMS Received: {}", pduRequest); 
    if (pduRequest.getCommandId() == SmppConstants.CMD_ID_DELIVER_SM) { 
     DeliverSm mo = (DeliverSm) pduRequest; 
     int length = mo.getShortMessageLength(); 
     Address source_address = mo.getSourceAddress(); 
     Address dest_address = mo.getDestAddress(); 
     byte[] shortMessage = mo.getShortMessage(); 
     String SMS= new String(shortMessage); 
     logger.info(source_address + ", " + dest_address + ", " + SMS); 
    } 
    return response; 
} 

}