2014-02-20 5 views
1

Я скачал источник из GitHub по этой ссылке: https://github.com/twitter/cloudhopper-smppCloudhopper SMPP - Как получать сообщения, отправленные от других клиентов?

Предполагая, что я хочу, чтобы проверить прием сообщения между клиентами, поэтому я создать сервер и 2 клиентов. Для запуска сервера я использовал команду «make server». Тогда в другой машине, клиент подключен к серверу и отправить 1 сообщение другому клиенту, который имеет номер телефона «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); 

Как клиент, который имеет номер телефона «123456» получить содержание сообщения от м. Телефонный номер "654321"?

Спасибо!

ответ

3

При создании sessionHandler, как это,

DefaultSmppSessionHandler sessionHandler = new ClientSmppSessionHandler(); 

Этот ClientSmppSessionHandler должен быть продлен до DefaultSmppSessionHandler. Служащих 2 слушателей. См. Ниже пример.

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; 
} 

}

Смежные вопросы