Google Talk是否支持XMPP多用户聊天?

时间:2013-02-15 21:34:22

标签: java xmpp google-apps smack google-talk

我正在使用Smack在Java / Spark中开发内部仪表板,以便在LDAP用户组之间启动Google Talk会议。我跑的时候

MultiUserChat.isServiceEnabled(connection, "user@mydomain.com")

它返回false。我知道通过GMail客户端,可以开始群组对话。由于Google Apps域中存在某些内容,或Google是否在Google Talk中使用其他方式进行群组聊天,这可能会返回错误吗?

3 个答案:

答案 0 :(得分:8)

事实证明,GTalk实际上确实支持MUC。使用Smack和Java,它就像下面的代码一样简单:

 UUID uid = UUID.randomUUID();
 String chatRoomName = String.format("private-chat-%1s@%2s", uid, "groupchat.google.com");
 MultiUserChat muc = new MultiUserChat(connection, chatRoomName);
 muc.join("My username");

从那时起,只需添加像

这样的用户
 muc.invite("someguy@somedomain.tld", "Some reason");

答案 1 :(得分:1)

不,截至今天,没有Google Talk客户端支持XEP-45多用户聊天(MUC),Google Talk也没有宣布XMPP MUC组件。 1

Google的所有Google Talk客户端都不支持MUC,这是您使用MultiUserChat.isServiceEnabled()查看的内容。但是,如果用户使用第三方XMPP客户端(例如Gajim)和Google Talk,那么他可以像任何其他XMPP用户一样加入MUC会议室。

请参阅Google产品论坛上的以下问题:http://productforums.google.com/forum/#!topic/chat/HLyMGBxJM7Q

1 但有一个。 See this answer

答案 2 :(得分:0)

我找到这个:Google Talk multi-user chat specifications

它显示了Talk和XMPP规范之间的一些差异。希望在talk.google.com服务上创建或加入MUC私人会议室的第三方客户必须遵循这些规范。

  1. 房间名称必须遵循private-chat-GUID@groupchat.google.com的特定格式。

  2. 从客户端到talk.google.com的状态广播必须包含一个实体功能元素。

  3. 如果用户希望在会议室中更改其昵称,则客户端必须在发送带有新昵称的状态节之前,将旧昵称设置为不可用。

确保Talk支持XMPP。