2014-12-05 29 views
0

我已经安装了openfire的websocket插件。现在当sparkweb端(客户端),如果用户的网络关闭,然后在openfire上,我们仍然可以看到它的存在5分钟后,其存在离线。当我看到websocket插件war文件时,它使用扩展websocketServlet的xmppservlet。在websocketServlet maxIdleTime设置其websocketServlet从int PARAM得到,但我不随地看到这个初始参数的条目任何web.xml文件MaxIdleTime在openfire中不可更改websocket连接

下面是其中初始化函数maxidleTime设置websocketServlet的代码片段: - 但我不请参阅任何web.xml默认5分钟maxIdleTime条目

@Override 
public void init() throws ServletException 
{ 
    try 
    { 
     String bs = getInitParameter("bufferSize"); 
     _webSocketFactory = new WebSocketFactory(this, bs == null ? 8192 : Integer.parseInt(bs)); 
     _webSocketFactory.start(); 

     String max = getInitParameter("maxIdleTime"); 
     if (max != null) 
      _webSocketFactory.setMaxIdleTime(Integer.parseInt(max)); 

     max = getInitParameter("maxTextMessageSize"); 
     if (max != null) 
      _webSocketFactory.setMaxTextMessageSize(Integer.parseInt(max)); 

     max = getInitParameter("maxBinaryMessageSize"); 
     if (max != null) 
      _webSocketFactory.setMaxBinaryMessageSize(Integer.parseInt(max)); 

     String min = getInitParameter("minVersion"); 
     if (min != null) 
      _webSocketFactory.setMinVersion(Integer.parseInt(min)); 
    } 
    catch (ServletException x) 
    { 
     throw x; 
    } 
    catch (Exception x) 
    { 
     throw new ServletException(x); 
    } 
} 

有没有人有任何想法如何设置maxIdleTime?

回答

0

您可以修改文件(Openfire的-的WebSockets/src目录/ COM/ifsoft /的WebSockets/servlet的/ XMPPServlet.java)

@Override public void configure(WebSocketServletFactory factory) 
{ 
    //set websocket idle timeout 30000 
    factory.getPolicy().setIdleTimeout(30000); 
    factory.setCreator(new WSocketCreator()); 
} 

这对我的作品。我还在https://github.com/gunblues/strophe-openfire-websocket上重建了插件websockets.war,但仅限于openfire3.10