繁体   English   中英

检测用户登录/注销XMPP Google App Engine

[英]Detect user login/logout xmpp google app engine

我正在使用Java中的Google App Engine发送XMPP消息。

我想知道是否有一种方法可以检查用户是否已登录到系统或已注销。 因此,当用户登录时,我想向他发送欢迎聊天消息,而当他退出时,我想通知我服务器代码。

我已经尝试过状态API,但到目前为止还没有运气。

假设您指的是通过XMPP查询用户的状态 ,请记住,这在您的App Engine帐户获得该用户授权的情况下才有效。 如果您已经了解了那么多,那么查询状态(用户已登录/注销)非常简单( source )。

如果Google Talk用户已经订阅了某个应用程序(已接受邀请或邀请该应用程序聊天),则该应用程序可以通过查找POST到/_ah/xmpp/presence/available来发现用户的可用性。 如果用户已订阅并可用,则可以向他们发送您的应用程序的状态和状态:

// In the handler for _ah/xmpp/presence/available
XMPPService xmppService = XMPPServiceFactory.getXMPPService();
Presence presence = xmppService.parsePresence(req);

// Split the XMPP address (e.g., user@gmail.com)
// from the resource (e.g., gmail.CD6EBC4A)
String from = presence.getFromJid().getId().split("/")[0];

// Mirror the contact's presence back to them
xmppService.sendPresence(from, PresenceType.AVAILABLE, presence.getPresenceShow(), presence.getStatus());

为了进一步说明 ,您的应用程序通过以下POST URL路径接收到自动通知:

  • /_ah/xmpp/presence/available/ POST表示用户有空并提供用户的聊天状态。
  • /_ah/xmpp/presence/unavailable/ POST表示用户不可用
  • /_ah/xmpp/presence/probe/ POST 请求用户当前的状态。

例如,当用户sally登录时,您将向/_ah/xmpp/presence/available/获取POST请求,然后服务器将必须处理该请求。 然后,当sally注销时,您将向/_ah/xmpp/presence/unavailable/获得单独的POST请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM