在public void processPacket(包数据包)XMPP中获取发送者的名称

时间:2014-12-19 03:24:11

标签: xmpp

我使用smack XMPP创建聊天应用

当我收到新消息时,我不知道如何从下面的内容中获取用户名



	@Override
	public void processPacket(Packet packet) {
		Message message = (Message) packet;



 我使用了message.getFrom(),但它像电子邮件地址一样返回给我 我喜欢它在facebook

中返回一些名字

1 个答案:

答案 0 :(得分:0)

登录Facebook并查看地址栏 - 您将在Facebook上看到您的唯一ID,如“user213435445”,它的工作方式相同:当您收到来自user545435345的facebook消息时,应用程序(在这种情况下为Facebook网站)检查什么与该ID相关联的“友好名称”,并显示您从该名称收到的消息。

返回XMPP - 它的工作方式相同,“电子邮件地址”,正确命名为 JID - 是唯一的用户标识符,当您从user@example.com收到xmpp消息时,您应该检查与之相关的友好名称。您在 XMPP名单中列出了联系人及其姓名。

所以,正确的会话流程是:

  1. 登录XMPP
  2. 检索你的名册
  3. 当您收到消息时,请从 中选择并检查您名单中的地址。如果是,请使用此好友的友好名称并显示给用户。
  4. 对于外发留言 - 当用户点击其好友的姓名进行聊天时,取用该名称并在用户名单中找到关联的 JID ,向该JID发送消息。