你的位置:首页 > Java教程

[Java教程]resin的websocket超时配置问题


  resin配置websocket的超时时间不是通过程序代码中直接调用WebSocketContext.setTimeout配置,因为这时候TcpPort已经创建完成,再配置超时时间不会对连接池里的连接产生影响,所以需要设置启动参数keepalive-timeout与socket-timeout,TcpSocketLink在构造函数中创建一个线程“KeepaliveRequestTask”,通过TcpSocketLink.handleKeepaliveTask处理请求及验证当前连接合法性,其中超时验证部分调用TcpPort.keepaliveThreadRead,其中采用“long timeout = Math.min(getKeepaliveTimeout(), getSocketTimeout());”计算出两个参数中最小的超时时间。因此,要使用websocket的超时功能,需要注意“socket-timeout”与“socket-timeout”两个参数。