package com.ld.igds.protocol.zldz.server; import com.ld.igds.io.notify.ServerNotifyInvoker; import com.ld.igds.protocol.zldz.command.BaseRemoteImpl; import com.ld.igds.protocol.zldz.mq.PublisherControl; import com.ld.igds.protocol.zldz.util.ServerUtils; import com.ld.igds.util.SpringUtil; import com.ld.io.api.IoSession; import com.ld.io.api.IoSessionListener; public class SessionListener extends BaseRemoteImpl implements IoSessionListener { public static final String BEAN_ID = "zldz.sessionListener"; private ServerNotifyInvoker serverNotifyInvoker; private PublisherControl publisherControl; @Override public void onCreate(IoSession session) { // 添加自定义业务ID session.setBusinessKey(ServerUtils.getServerKey(session.getAddress(), session.getPort())); //2021年6月9日 调整使用为队列 if (null == publisherControl) { publisherControl = SpringUtil.getBean(PublisherControl.class); } publisherControl.publishLoginMessage(session.getBusinessKey()); } @Override public void onDestroy(IoSession session) { if (null == serverNotifyInvoker) { serverNotifyInvoker = SpringUtil.getBean(ServerNotifyInvoker.class); } serverNotifyInvoker.connectDestory(session.getBusinessKey(), session.getAddress(), session.getPort()); } }