⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getnumberonlineusers.java

📁 基于Jabber协议的即时消息服务器
💻 JAVA
字号:
/** * $Revision: $ * $Date: $ * * Copyright (C) 2006 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Public License (GPL), * a copy of which is included in this distribution. */package org.jivesoftware.wildfire.commands.admin;import org.dom4j.Element;import org.jivesoftware.wildfire.ClientSession;import org.jivesoftware.wildfire.SessionManager;import org.jivesoftware.wildfire.commands.AdHocCommand;import org.jivesoftware.wildfire.commands.SessionData;import org.xmpp.forms.DataForm;import org.xmpp.forms.FormField;import java.util.Collection;import java.util.HashSet;import java.util.List;import java.util.Set;/** * Command that allows to retrieve the number of registered users who are online at * any one moment. By "online user" is meant any user or account that currently has * an IM session that may or may no be available. * * @author Gaston Dombiak */public class GetNumberOnlineUsers extends AdHocCommand {    protected void addStageInformation(SessionData data, Element command) {        //Do nothing since there are no stages    }    public void execute(SessionData data, Element command) {        DataForm form = new DataForm(DataForm.Type.result);        FormField field = form.addField();        field.setType(FormField.Type.hidden);        field.setVariable("FORM_TYPE");        field.addValue("http://jabber.org/protocol/admin");        field = form.addField();        field.setLabel(getLabel());        field.setVariable("onlineusersnum");        // Make sure that we are only counting based on bareJIDs and not fullJIDs        Collection<ClientSession> sessions = SessionManager.getInstance().getSessions();        Set<String> users = new HashSet<String>(sessions.size());        for (ClientSession session : sessions) {            users.add(session.getAddress().toBareJID());        }        field.addValue(users.size());        command.add(form.getElement());    }    protected List<Action> getActions(SessionData data) {        //Do nothing since there are no stages        return null;    }    public String getCode() {        return "http://jabber.org/protocol/admin#get-online-users-num";    }    public String getDefaultLabel() {        // TODO Use i18n        return "Number of Online Users";    }    protected Action getExecuteAction(SessionData data) {        //Do nothing since there are no stages        return null;    }    public int getMaxStages(SessionData data) {        return 0;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -