openfire xmpp 通过presence service判断用户是否在线

本文介绍了如何通过Openfire的Presence Service插件来判断XMPP用户是否在线。首先需要下载并安装presence.jar插件,然后在Openfire管理页面配置插件设置。接着,设置URL进行调用,如http://服务器地址:9090/plugins/presence/status?jid=用户名@domain&type=xml,根据返回的状态判断用户是在线、离线还是不存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载presence.jar包

下载地址:http://www.igniterealtime.org/projects/openfire/plugins.jsp 

2.把下载的presence.jar复制到部署的openfire目录下的plugins文件夹下,插件会自动部署运行

3.进入openfire的admin管理页面 在服务器设置下找到presence service 设置属性为anyone 确保插件允许任何人访问,并把下发方框里的unaviliable改为available让用户状态信息变得可访问

openfire xmpp 如何判断用户是否在线 - Mr.7 - Mr.7


4,在openfire管理页面插件栏重启插件


5.判断openfire用户在线状态


传入的strUrl格式是最重要的一步,我就是在这卡了

strUrl=http://(1):9090/plugins/presence/status?jid="+(2)+"&type=xml";

(1)应该是你部署openfire服务器的地址

(2)应该是你openfire ofUser表中的用户名加上“@你设置的openfire的domain”

//0表示无此用户  1表示在线  2表示离线

public int  short isonline(String strUrl)
{
    int    line    = 0;    //-不存在-
    
    try
    {
        URL             oUrl     = new URL(strUrl);
    URLConnection     oConn     = oUrl.openConnection();
    if(oConn!=null)
    {
        BufferedReader    reader= new BufferedReader(new InputStreamReader(oConn.getInputStream()));
        if(reader!=null)
        {
            String strFlag = reader.readLine();
           reader.close();
            
            if(strFlag.indexOf("type=\"unavailable\"")>=0)
            {
                lone= 2;
            }
            if(strFlag.indexOf("type=\"error\"")>=0)
            {
               line = 0;
            }
            else if(strFlag.indexOf("priority")>=0 || strFlag.indexOf("id=\"")>=0)
            {
                line = 1;
            }
        }
    }
    }
    catch(Exception e)
    {            
    }
    
    return    line;
}


 
    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值