【问题标题】:Presence with user id XMPP Framework存在用户 ID XMPP 框架
【发布时间】:2014-05-20 18:54:50
【问题描述】:

如何获得具有用户 ID 的任何特定用户的存在。

我的意思是说不将该用户添加到花名册列表中。

请帮我解决这个问题。

提前致谢。

【问题讨论】:

    标签: xmpp xmppframework user-presence


    【解决方案1】:

    我假设您说的是 iOS XMPPFramework。如果不是,请忽略此答案。 您可以像这样向其他用户发送定向出席信息:

    XMPPPresence *presence = [[XMPPPresence alloc] initWithType:@"probe" to:someJid];
    [_xmppStream sendElement:presence];
    

    其中 _xmppStream 是一个开放且连接的 XMPPStream。

    但是请注意,如果其他用户不在您的名单中,大多数 XMPP 服务器将不允许回复这种定向状态。如果您正在管理自己的 XMPP 服务器,则可以对其进行修改以允许此类操作。

    【讨论】:

    • 好的,感谢您的帮助。
    【解决方案2】:

    您可以通过调用以下插件 url 来询问任何用户的存在

    http://{SERVER_NAME}:9090/plugins/presence/status?jid=USERID@SERVER_NAME&type=text

    前:

    [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://SERVER_NAME:9090/plugins/presence/status?jid=ANYUSER@SERVER_NAME&type=text"]]  queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    
                if(connectionError==nil)
                    NSLog(@"plugins response ===%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    
            }];
    

    对于活跃用户,它将返回“在线”,对于离线用户,将返回“不可用”。请注意图片中显示的openfire服务器上的服务器设置。

    【讨论】:

    • 当用户离线时我得到“不可用”,但当特定用户上线时得到“空”。
    • 不应该是这样。让我再检查一下我的代码。
    • 我用我的代码测试过,似乎工作正常。请检查服务器名称并首先在浏览器上运行 http://{SERVER_NAME}:9090/plugins/presence/status?jid=USERID@SERVER_NAME&type=text 进行检查
    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2011-07-15
    • 2013-03-30
    • 2012-05-02
    • 2013-08-22
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多