Search in sources :

Example 6 with SMGPLoginMessage

use of com.zx.sms.codec.smgp.msg.SMGPLoginMessage in project SMSGate by Lihuanghe.

the class SMGPSessionLoginManager method failedLogin.

@Override
protected void failedLogin(ChannelHandlerContext ctx, Object msg, long status) {
    if (msg instanceof SMGPLoginMessage) {
        logger.error("Connected error status :{},msg : {}", status, msg);
        SMGPLoginMessage message = (SMGPLoginMessage) msg;
        // 认证失败
        SMGPLoginRespMessage resp = new SMGPLoginRespMessage();
        resp.setSequenceNo(message.getSequenceNo());
        resp.setStatus((int) status);
        ChannelFuture promise = ctx.writeAndFlush(resp);
        final ChannelHandlerContext finalctx = ctx;
        promise.addListener(new GenericFutureListener() {

            public void operationComplete(Future future) throws Exception {
                finalctx.close();
            }
        });
    } else {
        logger.error("connect msg type error : {}", msg);
        ctx.close();
    }
}
Also used : ChannelFuture(io.netty.channel.ChannelFuture) SMGPLoginRespMessage(com.zx.sms.codec.smgp.msg.SMGPLoginRespMessage) SMGPLoginMessage(com.zx.sms.codec.smgp.msg.SMGPLoginMessage) ChannelFuture(io.netty.channel.ChannelFuture) Future(io.netty.util.concurrent.Future) ChannelHandlerContext(io.netty.channel.ChannelHandlerContext) GenericFutureListener(io.netty.util.concurrent.GenericFutureListener)

Example 7 with SMGPLoginMessage

use of com.zx.sms.codec.smgp.msg.SMGPLoginMessage in project SMSGate by Lihuanghe.

the class SMGPSessionLoginManager method changeProtoVersion.

@Override
protected void changeProtoVersion(ChannelHandlerContext ctx, EndpointEntity entity, Object msg) throws Exception {
    SMGPLoginMessage message = (SMGPLoginMessage) msg;
    final short clientVersion = message.getVersion();
    short aim_ver = clientVersion;
    if (entity != null) {
        SMGPServerChildEndpointEntity childentity = (SMGPServerChildEndpointEntity) entity;
        // 以服务端配置的版本为准
        aim_ver = childentity.getClientVersion();
        // 发送ConnectRequest里的Version跟配置的不同
        if (aim_ver != clientVersion) {
            logger.warn("receive version code {} ,expected version is {} .I would use version {}", clientVersion, aim_ver, aim_ver);
        }
    }
    // 默认的是3.0的协议,如果不是则要更换解析器版本
    if ((byte) 0x30 != aim_ver) {
        // 以配置的协议版本为准
        // 更换协议解析器
        logger.info("changeCodec to version:{}", aim_ver);
        ctx.pipeline().replace(GlobalConstance.codecName, GlobalConstance.codecName, new SMGPMessageCodec(aim_ver));
    }
}
Also used : SMGPMessageCodec(com.zx.sms.codec.smgp.codec.SMGPMessageCodec) SMGPLoginMessage(com.zx.sms.codec.smgp.msg.SMGPLoginMessage) SMGPServerChildEndpointEntity(com.zx.sms.connect.manager.smgp.SMGPServerChildEndpointEntity)

Aggregations

SMGPLoginMessage (com.zx.sms.codec.smgp.msg.SMGPLoginMessage)7 SMGPServerChildEndpointEntity (com.zx.sms.connect.manager.smgp.SMGPServerChildEndpointEntity)4 SMGPLoginRespMessage (com.zx.sms.codec.smgp.msg.SMGPLoginRespMessage)3 SMGPEndpointEntity (com.zx.sms.connect.manager.smgp.SMGPEndpointEntity)2 SMGPMessageCodec (com.zx.sms.codec.smgp.codec.SMGPMessageCodec)1 SMGPActiveTestMessage (com.zx.sms.codec.smgp.msg.SMGPActiveTestMessage)1 SMGPActiveTestRespMessage (com.zx.sms.codec.smgp.msg.SMGPActiveTestRespMessage)1 SMGPBaseMessage (com.zx.sms.codec.smgp.msg.SMGPBaseMessage)1 SMGPDeliverMessage (com.zx.sms.codec.smgp.msg.SMGPDeliverMessage)1 SMGPDeliverRespMessage (com.zx.sms.codec.smgp.msg.SMGPDeliverRespMessage)1 SMGPExitMessage (com.zx.sms.codec.smgp.msg.SMGPExitMessage)1 SMGPExitRespMessage (com.zx.sms.codec.smgp.msg.SMGPExitRespMessage)1 SMGPSubmitMessage (com.zx.sms.codec.smgp.msg.SMGPSubmitMessage)1 SMGPSubmitRespMessage (com.zx.sms.codec.smgp.msg.SMGPSubmitRespMessage)1 SMGPUnknownMessage (com.zx.sms.codec.smgp.msg.SMGPUnknownMessage)1 EndpointEntity (com.zx.sms.connect.manager.EndpointEntity)1 CMPPServerChildEndpointEntity (com.zx.sms.connect.manager.cmpp.CMPPServerChildEndpointEntity)1 SMGPServerEndpointEntity (com.zx.sms.connect.manager.smgp.SMGPServerEndpointEntity)1 ChannelFuture (io.netty.channel.ChannelFuture)1 ChannelHandlerContext (io.netty.channel.ChannelHandlerContext)1