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

📄 textpresenceprovider.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.plugin.presence;import org.xmpp.packet.Presence;import org.xmpp.packet.JID;import org.xmpp.packet.PacketError;import org.jivesoftware.wildfire.XMPPServer;import org.jivesoftware.wildfire.user.User;import org.jivesoftware.wildfire.user.UserNotFoundException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * The TextPresenceProvider provides the user's presence status in plain-text format. * The returned text is the last known presence status of the user. If the user is offline * then the unavailable presence will be recreated with the last known presence status. * * @author Greg Unrein */class TextPresenceProvider extends PresenceInfoProvider {    public void sendInfo(HttpServletRequest request, HttpServletResponse response,            Presence presence) throws IOException {        response.setContentType("text/plain");        PrintWriter out = response.getWriter();        if (presence == null) {            // Recreate the unavailable presence with the last known status            JID targetJID = new JID(request.getParameter("jid"));            presence = new Presence(Presence.Type.unavailable);            XMPPServer server = XMPPServer.getInstance();            try {                User user = server.getUserManager().getUser(targetJID.getNode());                String status = server.getPresenceManager().getLastPresenceStatus(user);                if (status != null) {                    presence.setStatus(status);                }            }            catch (UserNotFoundException e) {                // Ignore.            }            presence.setFrom(targetJID);        }        out.println(presence.getStatus());        out.flush();    }    public void sendUserNotFound(HttpServletRequest request, HttpServletResponse response)            throws IOException {        response.setContentType("text/plain");        PrintWriter out = response.getWriter();        // Send a forbidden presence        Presence presence = new Presence();        presence.setError(PacketError.Condition.forbidden);        try {            presence.setFrom(new JID(request.getParameter("jid")));        }        catch (Exception e) {            // Ignore.        }        try {            presence.setTo(new JID(request.getParameter("req_jid")));        }        catch (Exception e) {            // Ignore.        }        out.println(presence.getStatus());        out.flush();    }}

⌨️ 快捷键说明

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