判断openfire用户的状态

Posted 起个名字好难

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断openfire用户的状态相关的知识,希望对你有一定的参考价值。

/**
* 判断openfire用户的状态
* 说明 :必须要 openfire加载 presence 插件,同时设置任何人都可以访问
* /[email protected]&type=xml 返回值 : 0 - 用户不存在; 1 - 用户在线; 2 -用户离线
* 示例:http://192.168.1.254:9090/plugins/presence/[email protected]&type=xml

* @后面的参数是服务器名称,我测试时服务器名称写为了192.168.1.254

*/
public static short IsUserOnLine(String strUrl) {
strUrl = "http://192.168.1.254:9090/plugins/presence/[email protected]&type=xml";
short shOnLineState = 0; // -不存在-
try {
URL oUrl = new URL(strUrl);
URLConnection oConn = oUrl.openConnection();
if (oConn != null) {
BufferedReader oIn = new BufferedReader(new InputStreamReader(oConn.getInputStream()));
if (null != oIn) {
String strFlag = oIn.readLine();
oIn.close();

if (strFlag.indexOf("type=\"unavailable\"") >= 0) {
shOnLineState = 2;
}
if (strFlag.indexOf("type=\"error\"") >= 0) {
shOnLineState = 0;
} else if (strFlag.indexOf("priority") >= 0 || strFlag.indexOf("id=\"") >= 0) {
shOnLineState = 1;
}
}
}
} catch (Exception e) {

}
return shOnLineState;
}

以上是关于判断openfire用户的状态的主要内容,如果未能解决你的问题,请参考以下文章

无法通过使用 smack、openfire 获得名册

在 openfire 中保持连接处于活动状态,但在 xmpp 中将用户显示为离线

检查用户是不是在 OpenFire 中经过身份验证

如何使用 Smack 在 XMPP openfire 中了解打字状态

如何使用 Smack 在 XMPP openfire 中了解打字状态

如何使用twised和wokkel在openfire上以用户身份登录?