use of com.zx.sms.codec.smgp.msg.SMGPSubmitMessage in project SMSGate by Lihuanghe.
the class SMGPMessageCodec method fromBytes.
private SMGPBaseMessage fromBytes(byte[] bytes) throws Exception {
if (bytes == null) {
return null;
}
if (bytes.length < SMGPBaseMessage.SZ_HEADER) {
return null;
}
int commandLength = ByteUtil.byte2int(bytes, 0);
assert bytes.length == commandLength;
int commandId = ByteUtil.byte2int(bytes, 4);
SMGPBaseMessage baseMsg = null;
switch(commandId) {
case SMGPConstants.SMGP_LOGIN:
baseMsg = new SMGPLoginMessage();
break;
case SMGPConstants.SMGP_LOGIN_RESP:
baseMsg = new SMGPLoginRespMessage();
break;
case SMGPConstants.SMGP_SUBMIT:
baseMsg = new SMGPSubmitMessage();
break;
case SMGPConstants.SMGP_SUBMIT_RESP:
baseMsg = new SMGPSubmitRespMessage();
break;
case SMGPConstants.SMGP_DELIVER:
baseMsg = new SMGPDeliverMessage();
break;
case SMGPConstants.SMGP_DELIVER_RESP:
baseMsg = new SMGPDeliverRespMessage();
break;
case SMGPConstants.SMGP_ACTIVE_TEST:
baseMsg = new SMGPActiveTestMessage();
break;
case SMGPConstants.SMGP_ACTIVE_TEST_RESP:
baseMsg = new SMGPActiveTestRespMessage();
break;
case SMGPConstants.SMGP_EXIT_TEST:
baseMsg = new SMGPExitMessage();
break;
case SMGPConstants.SMGP_EXIT_RESP:
baseMsg = new SMGPExitRespMessage();
break;
default:
baseMsg = new SMGPUnknownMessage(commandId);
break;
}
baseMsg.fromBytes(bytes, version);
return baseMsg;
}
use of com.zx.sms.codec.smgp.msg.SMGPSubmitMessage in project SMSGate by Lihuanghe.
the class SMGPMessageReceiveHandler method reponse.
@Override
protected ChannelFuture reponse(final ChannelHandlerContext ctx, Object msg) {
if (msg instanceof SMGPDeliverMessage) {
SMGPDeliverRespMessage resp = new SMGPDeliverRespMessage();
resp.setSequenceNo(((SMGPDeliverMessage) msg).getSequenceNo());
resp.setMsgId(((SMGPDeliverMessage) msg).getMsgId());
resp.setStatus(0);
return ctx.writeAndFlush(resp);
} else if (msg instanceof SMGPSubmitMessage) {
SMGPSubmitRespMessage resp = new SMGPSubmitRespMessage();
resp.setSequenceNo(((SMGPSubmitMessage) msg).getSequenceNo());
resp.setStatus(0);
return ctx.writeAndFlush(resp);
}
return null;
}
use of com.zx.sms.codec.smgp.msg.SMGPSubmitMessage in project SMSGate by Lihuanghe.
the class TestSMGPSubmitMessage method test1.
@Test
public void test1() {
SMGPSubmitMessage msg = new SMGPSubmitMessage();
msg.setDestTermIdArray(new String[] { "13800138000", "13800138001", "13800138002", "13800138003" });
msg.setLinkId("1023rsd");
msg.setMsgContent("第一种:通过注解@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作");
msg.setSrcTermId("10086988");
msg.setMsgSrc("901988");
test0(msg);
}
use of com.zx.sms.codec.smgp.msg.SMGPSubmitMessage in project SMSGate by Lihuanghe.
the class TestSMGPSubmitMessage method testuUnknowTLV.
@Test
public // 网络反馈的一个报错的smgp报文
void testuUnknowTLV() throws DecoderException, org.apache.commons.codec.DecoderException {
// byte[] arr = Hex.decodeHex("000000e6000000021b46734c0601020000000000000000000030303030303030300000000000000000000000000000000000000000000000000000000000000000000000313030383600000000000000000000000000000000000000000000000000000000000000000000000000013133383030313338303030000000000000000000002464666138656236612d616439662d343635342d393466612d6631313437313865643035610000000000000000000100010000020001000004000100000500010000070001000009000101000a000101000b000100000c0001000012000441424300".toCharArray());
byte[] arr = Hex.decodeHex("000000eb000000021b46734c0601020000000000000000000030303030303030300000000000000000000000000000000000000000000000000000000000000000000000313030383600000000000000000000000000000000000000000000000000000000000000000000000000013133383030313338303030000000000000000000002464666138656236612d616439662d343635342d393466612d66313134373138656430356100000000000000000001000100000200010000040001000005000100001400010100070001000009000101000a000101000b000100000c0001000012000441424300".toCharArray());
ByteBuf data = Unpooled.wrappedBuffer(arr);
try {
SMGPSubmitMessage result = new SMGPSubmitMessage();
result.fromBytes(arr, 0x13);
Assert.assertEquals("ABC", result.getMServiceId());
} catch (Exception ex) {
Assert.assertTrue(ex instanceof DecoderException);
}
}
use of com.zx.sms.codec.smgp.msg.SMGPSubmitMessage in project SMSGate by Lihuanghe.
the class TestSMGPSubmitMessage method test0.
private void test0(SMGPSubmitMessage msg) {
System.out.println(msg);
ByteBuf buf = encode(msg);
ByteBuf newbuf = buf.copy();
int length = buf.readableBytes();
buf.release();
SMGPSubmitMessage result = decode(newbuf);
System.out.println(result);
Assert.assertEquals(msg.getSequenceNo(), result.getSequenceNo());
Assert.assertEquals(msg.getMsgContent(), result.getMsgContent());
Assert.assertEquals(msg.getSrcTermId(), result.getSrcTermId());
Assert.assertArrayEquals(msg.getDestTermIdArray(), result.getDestTermIdArray());
Assert.assertEquals(msg.getSrcTermId(), result.getSrcTermId());
}
Aggregations