本文整理汇总了Java中org.apache.mina.core.session.IdleStatus类的典型用法代码示例。如果您正苦于以下问题:Java IdleStatus类的具体用法?Java IdleStatus怎么用?Java IdleStatus使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IdleStatus类属于org.apache.mina.core.session包,在下文中一共展示了IdleStatus类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: main
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public static void main(String[] args) throws IOException {
IoAcceptor acceptor = new NioSocketAcceptor();
// 这个过滤器用来记录所有的信息,比如创建session(会话),接收消息,发送消息,关闭会话等
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
// 用来转换二进制或协议的专用数据到消息对象中
acceptor.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
// 实时处理客户端的连接和请求
acceptor.setHandler(new TimeServerHandler());
acceptor.getSessionConfig().setReadBufferSize(2048);
// 方法将定时调用一次会话,保持空闲状态。来设定时间间隔。
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
acceptor.bind(new InetSocketAddress(PORT));
}
开发者ID:handexing,项目名称:frameworkAggregate,代码行数:17,代码来源:MinaTimeServer.java
示例2: deliverEvent
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
/**
* Static method which effectively delivers the specified event to the next filter
* <code>nextFilter</code> on the <code>session</code>.
*
* @param nextFilter the next filter
* @param session the session on which the event occured
* @param type the event type
* @param status the idle status should only be non null only if the event type is
* {@link IoSessionEventType#IDLE}
*/
private static void deliverEvent(final NextFilter nextFilter, final IoSession session,
final IoSessionEventType type, final IdleStatus status) {
switch (type) {
case CREATED:
nextFilter.sessionCreated(session);
break;
case OPENED:
nextFilter.sessionOpened(session);
break;
case IDLE:
nextFilter.sessionIdle(session, status);
break;
case CLOSED:
nextFilter.sessionClosed(session);
break;
}
}
开发者ID:eclipse,项目名称:neoscada,代码行数:28,代码来源:IoSessionEvent.java
示例3: KeepAliveFilter
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
/**
* Creates a new instance.
*/
public KeepAliveFilter(KeepAliveMessageFactory messageFactory, IdleStatus interestedIdleStatus,
KeepAliveRequestTimeoutHandler policy, int keepAliveRequestInterval, int keepAliveRequestTimeout) {
if (messageFactory == null) {
throw new IllegalArgumentException("messageFactory");
}
if (interestedIdleStatus == null) {
throw new IllegalArgumentException("interestedIdleStatus");
}
if (policy == null) {
throw new IllegalArgumentException("policy");
}
this.messageFactory = messageFactory;
this.interestedIdleStatus = interestedIdleStatus;
requestTimeoutHandler = policy;
setRequestInterval(keepAliveRequestInterval);
setRequestTimeout(keepAliveRequestTimeout);
}
开发者ID:eclipse,项目名称:neoscada,代码行数:23,代码来源:KeepAliveFilter.java
示例4: sessionIdle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public void sessionIdle(IoSession session, IdleStatus status) {
//向服务端发送心跳消息
/*IoBuffer buffer1 = IoBuffer.allocate(28).setAutoExpand(true);
buffer1.put("<aa><aa><aa><ab>".getBytes());
buffer1.put(new byte[]{0, 10, 0, 0, 0, 0, 0, 0, 0, 0});
buffer1.flip();
session.write(buffer1);*/
// logger.debug("发送IDLE消息:" + session);
if (System.currentTimeMillis() - session.getLastReadTime() > 60000) {
String sErrMsg = (System.currentTimeMillis() - session.getLastReadTime()) + "毫秒没有收到消息,主动断开连接" + session;
logger.fatal(sErrMsg);
mSockClient.close(true);
// EMail email = new EMail(new String[]{"[email protected]"}, sErrMsg, sErrMsg);
// email.send();
}
}
开发者ID:langxianwei,项目名称:iot-plat,代码行数:17,代码来源:ClientHandler.java
示例5: sessionIdle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public void sessionIdle(IoSession session, IdleStatus status)throws Exception {
logger.info("客户端sessionIdle, " + (System.currentTimeMillis() - session.getLastReadTime()) + "毫秒没有上行。" + session.getRemoteAddress());
if((System.currentTimeMillis()-session.getLastReadTime())>1000*60*10){
Object userID = (Object)0;
if(session.containsAttribute("UserID")){
userID = session.getAttribute("UserID");
}
logger.info(" Player["+userID.toString()+"] -------------------------------------------Out of time, close user session lastReadTime:"+session.getLastReadTime()+"["+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:ms").format(new Date(session.getLastReadTime()))+"] now:"+System.currentTimeMillis()+"["+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:ms").format(new Date(System.currentTimeMillis()))+"] session:"+session.getRemoteAddress());
logger.info(session.getId()+" -----------------------------------------Out of time, close user session");
logger.info("System.currentTimeMillis():"+format(System.currentTimeMillis()));
logger.info("session.getLastIoTime():"+format(session.getLastIoTime()));
logger.info("session.getLastBothIdleTime():"+format(session.getLastBothIdleTime()));
logger.info("session.getLastReaderIdleTime():"+format(session.getLastReaderIdleTime()));
logger.info("session.getLastReadTime():"+format(session.getLastReadTime()));
logger.info("session.getLastWriterIdleTime():"+format(session.getLastWriterIdleTime()));
logger.info("session.getLastWriteTime():"+format(session.getLastWriteTime()));
session.closeOnFlush();
}
}
开发者ID:langxianwei,项目名称:iot-plat,代码行数:20,代码来源:ServerHandler.java
示例6: Channel
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public Channel(final int world, final int channel) {
this.world = world;
this.channel = channel;
this.mapFactory = new MapleMapFactory(MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Map.wz")), MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/String.wz")), world, channel);
try {
eventSM = new EventScriptManager(this, ServerConstants.EVENTS.split(" "));
port = 7575 + this.channel - 1;
port += (world * 100);
ip = ServerConstants.HOST + ":" + port;
IoBuffer.setUseDirectBuffer(false);
IoBuffer.setAllocator(new SimpleBufferAllocator());
acceptor = new NioSocketAcceptor();
TimerManager.getInstance().register(new respawnMaps(), 10000);
acceptor.setHandler(new MapleServerHandler(world, channel));
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30);
acceptor.getFilterChain().addLast("codec", (IoFilter) new ProtocolCodecFilter(new MapleCodecFactory()));
acceptor.bind(new InetSocketAddress(port));
((SocketSessionConfig) acceptor.getSessionConfig()).setTcpNoDelay(true);
eventSM.init();
System.out.println(" Channel " + getId() + ": Listening on port " + port);
} catch (Exception e) {
e.printStackTrace();
}
}
开发者ID:NovaStory,项目名称:AeroStory,代码行数:27,代码来源:Channel.java
示例7: main
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public static void main(String[] args) throws IOException {
// 创建服务器端的监听器对象
IoAcceptor acceptor = new NioSocketAcceptor();
// 增加日志过滤器:用于日志存储
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
// 增加消息编码过滤器,采用UTF-8编码
acceptor.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
// 设置具体的事物逻辑处理器
acceptor.setHandler(new TimeServerHandler());
// 设置IoSession的一些属性
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
// 设置服务器监听的端口
acceptor.bind(new InetSocketAddress(PORT));
}
开发者ID:subaochen,项目名称:java-tutorial,代码行数:17,代码来源:MinaTimeServer.java
示例8: main
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public static void main(String[] args) throws IOException {
IoAcceptor acceptor = new NioSocketAcceptor();
// acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, IDELTIMEOUT);
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
acceptor.getFilterChain().addLast("myfliter", new MyFilter());
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new CommandCodecFactory("UTF-8")));
KeepAliveMessageFactoryImpl kamfi = new KeepAliveMessageFactoryImpl();
KeepAliveFilter kaf = new KeepAliveFilter(kamfi, IdleStatus.BOTH_IDLE);
/** 是否回发 */
kaf.setForwardEvent(true);
acceptor.getFilterChain().addLast("heart", kaf);
acceptor.setHandler(new CalculatorHandler());
acceptor.bind(new InetSocketAddress(PORT));
log.debug("socket通信服务端已启动,端口是" + PORT);
}
开发者ID:Keybo1013,项目名称:mina,代码行数:20,代码来源:CalculatorServer.java
示例9: sessionIdle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
@Override
public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
com.lts.remoting.Channel channel = new MinaChannel(session);
final String remoteAddress = RemotingHelper.parseChannelRemoteAddr(channel);
if (IdleStatus.BOTH_IDLE == status) {
LOGGER.info("{}: IDLE [{}]", sideType, remoteAddress);
RemotingHelper.closeChannel(channel);
}
if (remoting.getChannelEventListener() != null) {
RemotingEventType remotingEventType = null;
if (IdleStatus.BOTH_IDLE == status) {
remotingEventType = RemotingEventType.ALL_IDLE;
} else if (IdleStatus.READER_IDLE == status) {
remotingEventType = RemotingEventType.READER_IDLE;
} else if (IdleStatus.WRITER_IDLE == status) {
remotingEventType = RemotingEventType.WRITER_IDLE;
}
remoting.putRemotingEvent(new RemotingEvent(remotingEventType,
remoteAddress, channel));
}
}
开发者ID:WenZuHuai,项目名称:light-task-scheduler,代码行数:25,代码来源:MinaHandler.java
示例10: init
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
private void init(Config config) {
address = new InetSocketAddress(config.sourcePort);
acceptor = new NioSocketAcceptor();
if (acceptor.getFilterChain().get(LOGGER) == null) {
acceptor.getFilterChain().addLast(LOGGER, new LoggingFilter());
}
if (acceptor.getFilterChain().get(CODEC) == null) {
ProtocolCodecFactory codecFactory = config.codec == null ?
MinaUtil.getTextLineCodecFactory() : (ProtocolCodecFactory) config.codec;
acceptor.getFilterChain().addLast(CODEC, new ProtocolCodecFilter(codecFactory));
}
acceptor.setHandler(new MinaServerHandler());
acceptor.getSessionConfig().setReadBufferSize(config.bufferSize);
acceptor.getSessionConfig().setIdleTime(IdleStatus.WRITER_IDLE, 10);
acceptor.setReuseAddress(true); //避免重启时提示地址被占用
//设置主服务监听端口的监听队列的最大值为50,如果当前已经有50个连接,新的连接将被服务器拒绝
acceptor.setBacklog(50);
KeepAliveFilter keepAliveFilter = MinaUtil.initServerKeepAlive(config, this);
if (keepAliveFilter != null) {
acceptor.getFilterChain().addLast(HEARTBEAT, keepAliveFilter);
}
}
开发者ID:EthanCo,项目名称:Halo-Turbo,代码行数:24,代码来源:MinaTcpServerSocket.java
示例11: init
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
private void init(Config config) {
connector = new NioDatagramConnector();
connector.setHandler(new MinaClientHandler());
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
if (connector.getFilterChain().get(LOGGER) == null) {
chain.addLast(LOGGER, new LoggingFilter());
}
if (connector.getFilterChain().get(CODEC) == null) {
ProtocolCodecFactory codecFactory = config.codec == null ?
MinaUtil.getTextLineCodecFactory() : (ProtocolCodecFactory) config.codec;
chain.addLast(CODEC, new ProtocolCodecFilter(codecFactory));
}
connector.getSessionConfig().setReadBufferSize(config.bufferSize);
connector.getSessionConfig().setIdleTime(IdleStatus.WRITER_IDLE, 10);
connector.getSessionConfig().setBroadcast(true);
KeepAliveFilter keepAliveFilter = MinaUtil.initClientKeepAlive(config, this);
if (keepAliveFilter != null) {
connector.getFilterChain().addLast(HEARTBEAT, keepAliveFilter);
}
}
开发者ID:EthanCo,项目名称:Halo-Turbo,代码行数:21,代码来源:MinaUdpClientSocket.java
示例12: init
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
private void init(Config config) {
address = new InetSocketAddress(config.targetIP, config.targetPort);
connector = new NioSocketConnector();
connector.setDefaultRemoteAddress(address);
if (connector.getFilterChain().get(LOGGER) == null) {
connector.getFilterChain().addLast(LOGGER, new LoggingFilter());
}
if (connector.getFilterChain().get(CODEC) == null) {
ProtocolCodecFactory codecFactory = config.codec == null ?
MinaUtil.getTextLineCodecFactory() : (ProtocolCodecFactory) config.codec;
connector.getFilterChain().addLast(CODEC, new ProtocolCodecFilter(codecFactory));
}
connector.setHandler(new MinaClientHandler());
connector.getSessionConfig().setReadBufferSize(config.bufferSize);
connector.getSessionConfig().setIdleTime(IdleStatus.WRITER_IDLE, 10);
KeepAliveFilter keepAliveFilter = MinaUtil.initClientKeepAlive(config, this);
if (keepAliveFilter != null) {
connector.getFilterChain().addLast(HEARTBEAT, keepAliveFilter);
}
}
开发者ID:EthanCo,项目名称:Halo-Turbo,代码行数:21,代码来源:MinaTcpClientSocket.java
示例13: init
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
private void init(Config config) {
address = new InetSocketAddress(config.sourcePort);
acceptor = new NioDatagramAcceptor();
acceptor.setHandler(new MinaServerHandler());
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
if (acceptor.getFilterChain().get(LOGGER) == null) {
chain.addLast(LOGGER, new LoggingFilter());
}
if (acceptor.getFilterChain().get(CODEC) == null) {
ProtocolCodecFactory codecFactory = config.codec == null ?
MinaUtil.getTextLineCodecFactory() : (ProtocolCodecFactory) config.codec;
chain.addLast(CODEC, new ProtocolCodecFilter(codecFactory));
}
DatagramSessionConfig dcfg = acceptor.getSessionConfig();
dcfg.setReuseAddress(true);
dcfg.setReadBufferSize(config.bufferSize);
dcfg.setIdleTime(IdleStatus.WRITER_IDLE, 10);
dcfg.setBroadcast(true);
KeepAliveFilter keepAliveFilter = MinaUtil.initServerKeepAlive(config, this);
if (keepAliveFilter != null) {
acceptor.getFilterChain().addLast(HEARTBEAT, keepAliveFilter);
}
}
开发者ID:EthanCo,项目名称:Halo-Turbo,代码行数:26,代码来源:MinaUdpServerSocket.java
示例14: main
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public static void main(String[] args) {
int port = U.getInt("cleaner.server.port");
int idleTime = U.getInt("cleaner.server.time");
NioSocketAcceptor clientAcceptor = new NioSocketAcceptor();
clientAcceptor.setReuseAddress(true);
DefaultIoFilterChainBuilder chain = clientAcceptor.getFilterChain();
SocketSessionConfig config = clientAcceptor.getSessionConfig();
config.setIdleTime(IdleStatus.READER_IDLE, idleTime);// 读空闲 10秒
config.setReuseAddress(true);
config.setReadBufferSize(4096);// 默认2048
config.setKeepAlive(true);
config.setTcpNoDelay(true);// 开启nagle算法
// 编解码
chain.addLast("coder", new ProtocolCodecFilter(new TextLineCodecFactory(U.UTF8)));
clientAcceptor.setHandler(new CleanerHandler());
try {
clientAcceptor.bind(new InetSocketAddress(port));
log.info("心跳模块启动..");
} catch (IOException e) {
log.error("心跳模块启动失败", e);
}
}
开发者ID:East196,项目名称:maker,代码行数:24,代码来源:BeatServer.java
示例15: initialize
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public void initialize() {
idleTime = U.getInt("chat.server.idleTime");
System.out.println(idleTime);
clientAcceptor = new NioSocketAcceptor();
clientAcceptor.setReuseAddress(true);
DefaultIoFilterChainBuilder chain = clientAcceptor.getFilterChain();
SocketSessionConfig config = clientAcceptor.getSessionConfig();
config.setReuseAddress(true);
config.setIdleTime(IdleStatus.READER_IDLE, idleTime);// 读空闲 20秒
config.setReadBufferSize(4096);// 默认2048
config.setKeepAlive(true);
config.setTcpNoDelay(true);// 禁用/开启nagle算法
// 编解码
chain.addLast("coder", new ProtocolCodecFilter(new MessageCodecFactory()));
// 日志
chain.addLast("logger", new LoggingFilter());
// 业务逻辑处理线程池
chain.addLast("threadPool", new ExecutorFilter());
}
开发者ID:East196,项目名称:maker,代码行数:22,代码来源:TcpServer.java
示例16: handle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public void handle(MinaUserSession session) {
if (iIdleTime == 0) {
iIdleTime = U.getInt("chat.server.idleTime");
MAX_IDLETIME = U.getInt("chat.server.maxIdleTime");
unIdleTimes = MAX_IDLETIME / iIdleTime;
}
IoSession ioSession = session.getIoSession();
IdleStatus idleStatus = session.getIdleStatus();
if(ioSession==null){
log.info("2ioSession:{} idleStatus:{}",ioSession,idleStatus);
}
int nCount = ioSession.getIdleCount(idleStatus);
if (nCount > unIdleTimes) {
log.info("timeout 空闲,因为" + unIdleTimes * iIdleTime + "秒内没有数据交互!userId=" + session.getUserId()
+ " idleCount=" + nCount);
ioSession.close(true);
}
}
开发者ID:East196,项目名称:maker,代码行数:19,代码来源:MinaIdleHandler.java
示例17: sessionIdle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
/**
*/
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
logger.warn("sessionIdle()... from "
+ session.getRemoteAddress().toString());
if (!session.containsAttribute(CIMConstant.SESSION_KEY)) {
session.close(true);
} else {
// 如果5分钟之内客户端没有发送心态,则可能客户端断网,关闭连接
Object heartbeat = session.getAttribute(CIMConstant.HEARTBEAT_KEY);
if (heartbeat != null
&& System.currentTimeMillis()
- Long.valueOf(heartbeat.toString()) >= 300000) {
session.close(false);
}
}
}
开发者ID:SatanFu,项目名称:ichat-server,代码行数:19,代码来源:MainIOHandler.java
示例18: run_startup_configurations
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public static void run_startup_configurations() {
autoPaoDian = Integer.parseInt(ServerProperties.getProperty("autoPaoDian", "1"));
port = Short.parseShort(ServerProperties.getProperty("cashshop.port", String.valueOf(DEFAULT_PORT)));
ip = ServerProperties.getProperty("world.host", ServerConstants.IP) + ":" + port;
IoBuffer.setUseDirectBuffer(false);
IoBuffer.setAllocator(new SimpleBufferAllocator());
acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MapleCodecFactory()));
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30);
players = new PlayerStorage(MapleServerHandler.CASH_SHOP_SERVER);
try {
acceptor.setHandler(new MapleServerHandler(MapleServerHandler.CASH_SHOP_SERVER));
acceptor.bind(new InetSocketAddress(port));
((SocketSessionConfig) acceptor.getSessionConfig()).setTcpNoDelay(true);
FileoutputUtil.log("完成!");
FileoutputUtil.log("商城伺服器正在监听" + port + "端口\r\n");
} catch (IOException e) {
FileoutputUtil.log("失败!");
System.err.println("无法绑定" + port + "端口");
throw new RuntimeException("绑定端口失败.", e);
}
}
开发者ID:icelemon1314,项目名称:mapleLemon,代码行数:26,代码来源:CashShopServer.java
示例19: run
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
public void run() throws Exception {
if (start) {
SimpleIoProcessorPool<NioSession> simpleIoProcessorPool = new SimpleIoProcessorPool(
NioProcessor.class, LoginServer.ExecutorService);
acceptor = new NioSocketAcceptor(LoginServer.ExecutorService,
simpleIoProcessorPool);
acceptor.getSessionConfig().setTcpNoDelay(true);
acceptor.getFilterChain().addLast("ThreadPool",
new ExecutorFilter(LoginServer.ExecutorService));
acceptor.getFilterChain().addLast("executor",
new ExecutorFilter(LoginServer.ExecutorService));
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 15);
acceptor.setHandler(new LoginGatewayHandler(this));
acceptor.bind(new InetSocketAddress(getPort()));
log.info("网关端口监听于 " + getPort());
}
}
开发者ID:316181444,项目名称:Hxms,代码行数:18,代码来源:LoginGateway.java
示例20: sessionIdle
import org.apache.mina.core.session.IdleStatus; //导入依赖的package包/类
@Override
public void sessionIdle(final IoSession session, final IdleStatus status)
throws Exception {
MapleClient client = (MapleClient) session
.getAttribute(MapleClient.CLIENT_KEY);
// if (client != null && client.getPlayer() != null &&
// log.isTraceEnabled()) {
// log.trace("玩家空闲着", client.getPlayer().getName());
// }
if (client != null) {
client.sendPing();
}
super.sessionIdle(session, status);
}
开发者ID:316181444,项目名称:Hxms,代码行数:17,代码来源:MapleServerHandler.java
注:本文中的org.apache.mina.core.session.IdleStatus类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论