XSocket是什么? java的nio的封装。

详情:

1. http://xsocket.sourceforge.net/core/apidocs/2_1/index.html

2. http://xsocket.org

开发中要解决的实际问题:如果客户端一定时间内没有操作,则踢客户端下线。

/**
* @author 9082046**@qq.com
*
*/ 方案一、
在启动时设置: IServer srv = new Server(Port, IHandler);
srv.setConnectionTimeoutMillis(Time_1_ms);// 设置最大连接时间。
srv.setIdleTimeoutMillis(Time_2_ms);// 设置最大空闲时间。 方案二、
在接受到连接时 和 在接受到数据时设置: public class XSocketHandler implements IDataHandler ,IConnectHandler ,IIdleTimeoutHandler ,IConnectionTimeoutHandler,IDisconnectHandler
{
public boolean onConnect(INonBlockingConnection nbc) throws IOException,
BufferUnderflowException, MaxReadSizeExceededException
{      nbc.setConnectionTimeoutMillis(Time_1_ms);// 为什么写两次、写两种函数? 目的: 1、举例函数的用法。 2、配合onData() 一定程度上阻止恶意客户端,如果在一定时间内通不过登录验证则会被超时处理。
 nbc.setIdleTimeoutMillis(Time_2_ms);
return true;
} public boolean onDisconnect(INonBlockingConnection nbc) throws IOException
{
return false;
} public boolean onData(INonBlockingConnection nbc) throws IOException,
BufferUnderflowException, ClosedChannelException,
MaxReadSizeExceededException
{
      nbc.setConnectionTimeoutMillis(Time_1_ms);  
      nbc.setIdleTimeoutMillis(Time_2_ms);
return true;
} public boolean onIdleTimeout(INonBlockingConnection nbc) throws IOException
{
return true;
} public boolean onConnectionTimeout(INonBlockingConnection nbc) throws IOException
{ return true;
} }

个人注:xsocket的最大空闲时间 和 个人原始理解存在差异,个人原始理解:从最后一次接收到client的数据开始计时, 实际XSocket的定义:从最后一次被使用开始计时,无论是接收到数据 或者 被用来发送数据

如果实际需求中是要求:从客户端最后一次发送数据开始计时,则推荐 在XSocketHandler类中的 IHandler的实现化中使用 setConnectionTimeoutMillis() 方法。

反面举例:世界聊天会使用socket发送数据影响 setIdleTimeoutMillis() 。

如有考虑不周,请指正,请轻喷。欢迎大家留言。

xsocket:空闲超时问题。的更多相关文章

  1. 新功能:Azure 负载平衡器的空闲超时现可配置了

    Yves Pitsch Azure 网络首席项目经理 我们很高兴地宣布,Azure负载平衡器现在可以为云服务和虚拟机提供可配置的 TCP空闲超时支持.要配置此功能,可以使用服务管理 API.Power ...

  2. MySQL:参数wait_timeout和interactive_timeout以及空闲超时的实现【转】

    一.参数意思 这里简单解释一下两个参数,含义如下: interactive_timeout:The number of seconds the server waits for activity on ...

  3. windows 空闲超时 非管理员如何破解

    windows 空闲超时 非管理员如何破解

  4. 解决IIS应用程序池DefaultAppPool关闭超时错误

    错误系统日志: 为应用程序池“DefaultAppPool”提供服务的进程关闭时间超过了限制.进程 ID 是“3060”. 有关更多信息,请参阅在http://go.microsoft.com/fwl ...

  5. MySQL超时配置

    connect_timeout:连接响应超时时间.服务器端在这个时间内如未连接成功,则会返回连接失败. wait_timeout:连接空闲超时时间.与服务器端无交互状态的连接,直到被服务器端强制关闭而 ...

  6. mysql里几个超时配置参数wait_timeout,net_read_timeout等

    以下这些配置项单位都是秒,在mysql命令行中可以使用show global variables like '变量名';可查询配置值. connect_timeout:连接响应超时时间.服务器端在这个 ...

  7. LVS持久化与超时时间问题分析

    前言 在上一篇文章<搭建DNS+LVS(keepAlived)+OpenResty服务器(Docker环境)>中,我搭建了dns+lvs+openresty+web集群:先来回顾一下架构图 ...

  8. mysql 连接超时的问题

    项目中用mycat做的分表分库,异步通知系统会连接mycat去查数据库数据,有时会抛异常提示mysql server has gone away.最初以为是mycat的问题,在修改了mycat的配置, ...

  9. IIS进程回收 空闲时Net线程未运行

    最近手上的项目,用的是asp.net mvc,后台有个线程在循环接收socket数据,本身在系统运行的时候访问页面没问题,但是发现没访问时,后台没有接收数据,后来知道了是IIS把线程回收了.解决方法如 ...

随机推荐

  1. 转:VB用ADO连接SQLServer数据库

    '数据源信息常量 Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initi ...

  2. MySQL 官方文档

    MySQL 5.6 Reference Manual Preface and Legal Notices 1 General Information 2 Installing and Upgradin ...

  3. Java之JVM调优案例分析与实战(2) - 集群间同步导致的内存溢出

    环境:一个基于B/S的MIS系统,硬件为两台2个CPU.8GB内存的HP小型机,服务器是WebLogic 9.2,每台机器启动了3个WebLogic实例,构成一个6个节点的亲合式集群. 说明:由于是亲 ...

  4. mariadb 10.1.10安装

    Maridb 10.1.10 on centos 6.6 *********************************************************************** ...

  5. adb详解

    adb详解 分类: android开发工具相关 2012-10-24 18:27 2822人阅读 评论(0) 收藏 举报 ADB全称Android Debug Bridge,是android sdk里 ...

  6. 优化技术之Android UI优化

    2013-06-30 UI 优化 在Android中,最常用LinearLayout表示UI的布局.比起LinearLayout,在资源利用上,RelativeLayout会占用更少的资源而达到相同的 ...

  7. 【LeetCode】99. Recover Binary Search Tree

    Recover Binary Search Tree Two elements of a binary search tree (BST) are swapped by mistake. Recove ...

  8. LDO和BUCK降压稳压器对比

    LDO和BUCK降压稳压器对比 在采用MCU/DSP/FPGA设计的控制系统中,低压输入级(一般在12V以下),输出5V/3.3V/1.8V/1.5V/1.2V的电路中,常用的电源芯片是BUCK(降压 ...

  9. MySQL主从双向同步复制

    本文介绍了mysql主从,实现mysql的双向同步复制. MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日 ...

  10. 博客已迁移至512z.com

    本博客已迁移至http://blog.512z.com,此处今后不再更新