【问题标题】:How to set timeout in SMPP如何在 SMPP 中设置超时
【发布时间】:2019-03-13 08:30:47
【问题描述】:
有人知道在向 SMSC 提交消息 (submit_sm) 时如何设置超时吗?我尝试将接收超时 (session.getReceiver().setReceiveTimeout) 设置为 6 秒,但大约 30 秒后我仍然得到空响应。
以下是我设置的超时时间:
- session.getReceiver().setReceiveTimeout(6000)
- session.getReceiver().setQueueTimeout(6000)
- TCPIPConnection.setCommsTimeout(5000)
- TCPIPConnection.setReceiveTimeout(5000)
目前我正在使用 OpenSMPP
TIA :)
【问题讨论】:
标签:
java
timeout
smpp
opensmpp
【解决方案1】:
制定新的未来任务
public static class SubmitSMTask implements Callable<SubmitSMResp>{
SubmitSM smRequest;
Session sessionSend;
public SubmitSMTask(Session sessionSend, SubmitSM smRequest) {
this.sessionSend = sessionSend;
this.smRequest = smRequest;
}
@Override
public SubmitSMResp call() throws Exception {
SubmitSMResp response = sessionSend.submit(smRequest);
return response;
}
}
然后调用它。我用 100 毫秒作为超时时间
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<SubmitSMResp> future = executor.submit(new SubmitSMTask(sessionSend, smRequest));
SubmitSMResp response = future.get(100, TimeUnit.MILLISECONDS);
smsId = response.getMessageId();