当前位置: 首页 > 面试题库 >

如何获得Vaadin的所有会议

彭允晨
2023-03-14
问题内容

我想知道实时有多少用户连接到我的应用程序。我想到了要打开的会话数循环的想法,但是我找不到该怎么做的方法。如果您有另一种方法可以提出您的建议。


问题答案:

到目前为止,我发现的最佳解决方案是计算会话的创建和销毁时间。

public class VaadinSessionListener{

    private static volatile int activeSessions = 0;

    public static class VaadinSessionInitListener implements SessionInitListener{

        @Override
        public void sessionInit(SessionInitEvent event) throws ServiceException {

            incSessionCounter();            
        }
    }

    public static class VaadinSessionDestroyListener implements SessionDestroyListener{

        @Override
        public void sessionDestroy(SessionDestroyEvent event) {

            /*
             * check if HTTP Session is closing
             */
            if(event.getSession() != null && event.getSession().getSession() != null){

                decSessionCounter();
            }
        }
    }


    public static Integer getActiveSessions() {
        return activeSessions;
    }

    private synchronized static void decSessionCounter(){
        if(activeSessions > 0){
            activeSessions--;
        }
    }

    private synchronized static void incSessionCounter(){
        activeSessions++;
    }
}

然后在VaadinServlet init()方法中添加SessionListeners

@WebServlet(urlPatterns = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = true, ui = MyUI.class)
public static class Servlet extends VaadinServlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

        super.init(servletConfig);


        /*
         * Vaadin SessionListener
         */
        getService().addSessionInitListener(new VaadinSessionListener.VaadinSessionInitListener());
        getService().addSessionDestroyListener(new VaadinSessionListener.VaadinSessionDestroyListener());    
    }
}


 类似资料:
  • 你好,我一直在尝试自动化监控一个站点,但它“响应”多个文档,我想知道如何浏览他们或选择哪一个我想要分析。 代码非常简单: 站点这样“回应”: 它不允许我发布图片,但这里有链接: 如何选择不同的单据而不是第一个单据?

  • 问题内容: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 是否有用于获取数据库中所有集合的命令?其他数据类型(哈希,列表,排序集)又如何呢? http://redis.io/topics/data-types 问题答案: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 不管您的密钥是哪种数据类

  • 问题内容: 我有这张桌子: 如何为每个名称获得年份第二高的行,如下所示: 我尝试了以下查询,但没有成功: 上一个查询给了我这个错误:“ SQL错误(1235):此版本的MySQL尚不支持’LIMIT&IN / ALL / ANY / SOME子查询’” 而且我现在无法更改MySQL版本(5.6.25),因为该解决方案已经投入生产。 有什么帮助吗? 问题答案: 在MySQL中,每个组求解n的一种方法

  • 问题内容: 如何在Oracle中获取有关表,表的列和约束等的所有信息?我在用 但这只是给我列名称,空值和类型。 问题答案: 尝试dbms_metadata软件包,您可以在此处找到更多信息

  • 问题内容: 我如何知道已保存数据的模型计数?有一种方法,但似乎无效。 是一个对象,调用哪个方法可以得到实数? 谢谢 问题答案: 下面的代码有效。注意countDocuments的使用。

  • 获取“所有”AVSpeechSynthesisVoice对象列表的标准方法是请求: 但是,这仅显示每个语言区域对的唯一默认语音。e、 g.对于美国: 如果我看在设置应用程序下的一般→辅助功能→语音→语音→英语我看到我有'Siri女性(增强)'选择,但该语音是不可选的代码。完整的名单是 所以最大的问题是:如何从代码中选择Alex或Siri女性作为语音?