2012-08-27 64 views
0

我想知道是否有可能决定何时从xmmp服务器使用消息传递?如何仅使用Smack库消耗XMPP服务器的一些聊天消息?

让我试着解释更好......想象一下,我开发了一个机器人来读取该邮件的正文开始的所有消息“MESSAGETOBOTONLY:”如果我做平常方法来读取信息:

public void processMessage(Chat chat, Message message) { 
    if (message.getType() == Message.Type.chat) { ... } 
} 

我收到的所有邮件都将被使用并丢失......我想要的仅仅是使用以“MESSAGETOBOTONLY:”开头的邮件,并让其他邮件仍在服务器上供xmpp聊天客户端使用。

最好的问候,

回答

1

不要滥用一个消息体元素中的魔法字符串来表示一个特殊的消息类型。

如果要控制bot,然后使用IQ数据包或为消息类型数据包添加一个额外的扩展名,以指示此消息有特殊用途。然后,您可以添加一个packetListener和一个packetFilter,以便在收到这些类型的XMPP节时得到通知。

+0

我不想控制一个机器人...我想交换使用gtalk的两个不同人之间的敏感数据。所以我需要创建一个过滤器来消费这个消息,以便gchat不会打扰这些人。我不知道如果我不能发送特别的智商GTalk,但智商会是一个问题,因为他们不支持交货确认... – Winter

相关问题