SmppInboundChannelAdapter AbstractReceivingMessageListener

В SmppInboundChannelAdapter декларация AbstractReceivingMessageListener имеет неоперативный для onDeliveryReceipt метод. Я однако устанавливаю registered_delivery токен в исходящем шлюзе smpp и хотел бы получить квитанцию ​​о доставке. Если я добавлю реализацию MessageReceiverListener для набора слушателей в исходящем шлюзе, который получит квитанцию ​​о доставке, или входящий адаптер получит ее первым?

1 ответ

Ну смотря SmppInboundChannelAdapter а также SmppOutboundGateway мы видим, что они используют то же самое ExtendedSmppSession экземпляр (если вы делаете это из конфига, конечно).

Теперь давайте посмотрим на DelegatingMessageReceiverListener используется из ExtendedSmppSessionAdaptingDelegate, Он просто повторяет и вызывает всех настроенных слушателей:

public void onAcceptDeliverSm(DeliverSm deliverSm) throws ProcessRequestException {
    for (MessageReceiverListener l : this.messageReceiverListenerSet)
        l.onAcceptDeliverSm(deliverSm);
}

И отсюда это не имеет значения, что внутренний SmppInboundChannelAdapterAbstractReceivingMessageListener реализация ничего не делает в своем onDeliveryReceiptпотому что твой обычай listener на session может справиться с этим.

Другие вопросы по тегам