package com.ld.igds.protocol.fzzy.command; import java.util.List; import com.ld.igds.io.constant.ProtocolEnum; import com.ld.igds.protocol.fzzy.dto.SendMessage; import com.ld.igds.protocol.fzzy.server.FzzyServerEngine; import com.ld.igds.util.ContextUtil; import com.ld.io.api.InvokeResult; import com.ld.io.api.IoSession; import com.ld.io.api.IoSessionQuery; import lombok.extern.slf4j.Slf4j; @Slf4j public class BaseRemoteImpl { public String getProtocol() { return ProtocolEnum.TCP_FZZY_V3.getCode(); } /** * 发送命令 * * @param ip * @param port * @param msg * @return */ public InvokeResult send(String ip, int port, byte[] msg) { IoSessionQuery sessionFactory = FzzyServerEngine.ioServer.getSessionQuery(); List sessions = sessionFactory.getAllSession(); IoSession session = null; for (IoSession ioSession : sessions) { if (ContextUtil.getServerKey(ip, port).equals( ioSession.getBusinessKey())) { session = ioSession; break; } } if (null == session) { return InvokeResult.CHANNEL_CLOSED; } return session.invoke(msg); } public InvokeResult send(SendMessage message) { log.debug("平台推送报文信息--{}", message.toString()); IoSessionQuery sessionFactory = FzzyServerEngine.ioServer.getSessionQuery(); List sessions = sessionFactory.getAllSession(); IoSession session = null; for (IoSession ioSession : sessions) { if (ContextUtil.getServerKey(message.getIp(), message.getPort()).equals( ioSession.getBusinessKey())) { session = ioSession; break; } } if (null == session) { return InvokeResult.CHANNEL_CLOSED; } return session.invoke(message.getByteMsg()); } }