Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XMPP实现推送通知基础结构_Java_Push Notification_Xmpp_Smack_Asmack - Fatal编程技术网

Java 使用XMPP实现推送通知基础结构

Java 使用XMPP实现推送通知基础结构,java,push-notification,xmpp,smack,asmack,Java,Push Notification,Xmpp,Smack,Asmack,我目前正在从事一个项目,该项目要求服务器从当前连接到服务器的设备请求数据。这意味着,服务器首先找出哪些设备连接到服务器,然后向客户端设备发送特定于应用程序的消息,该消息应该唤醒客户端上存在的某些功能 我正在研究XMPP服务,它看起来很有前途,因为它可以作为推送通知。XMPP中的可用于检查设备当前是否已连接并已订阅服务器。因为每个android用户都有一个gmail帐户,所以我想使用gmail xmpp服务来连接/订阅服务器。然后向客户端发送特定消息,即x..。@gmail.com 但是,如果以这

我目前正在从事一个项目,该项目要求服务器从当前连接到服务器的设备请求数据。这意味着,服务器首先找出哪些设备连接到服务器,然后向客户端设备发送特定于应用程序的消息,该消息应该唤醒客户端上存在的某些功能

我正在研究XMPP服务,它看起来很有前途,因为它可以作为推送通知。XMPP中的可用于检查设备当前是否已连接并已订阅服务器。因为每个android用户都有一个gmail帐户,所以我想使用gmail xmpp服务来连接/订阅服务器。然后向客户端发送特定消息,即x..。@gmail.com


但是,如果以这种方式发送消息,则客户端应用程序将与本机gtalk客户端一样获取消息。那么,我该如何拦截它,使它不会出现在gtalk客户端上,但我的应用程序仍能得到它呢?

在发送消息时使用完整的JID。只有在使用裸JID时,才能发送到多个客户端

  • 完整JID->xyz@gmail.com/设备
  • 赤裸裸的JID->xyz@gmail.com

使用完整JID的问题在于,当设备离线或由于某种原因无法交付时,mesage被发送到裸jidXMPP“推送”不一定有意义,因为XMPP在技术上是一个连接协议,如果你知道我的意思的话。看一看如何设置XMPP服务器,并使用它和aSmack库。很难从你的问题中判断你是否有一个简单的方法来获取哪些客户与你有联系,或者你是否在问这个问题?它们是否连接到XMPP服务或其他web服务/协议?您是否在服务器中实现了XMPP发送服务?