我正在使用 Smack 在 Java/Spark 中开发一个内部仪表板,该仪表板将在 LDAP 用户组之间启动 Google Talk 会议。当我跑
MultiUserChat.isServiceEnabled(connection, "user@mydomain.com")
它返回假。我知道通过 GMail 客户端,可以开始群聊。这是否会因为我的 Google Apps 域中的某些内容而返回 false,或者 Google 是否使用其他方式在 Google Talk 中进行群聊?
我正在使用 Smack 在 Java/Spark 中开发一个内部仪表板,该仪表板将在 LDAP 用户组之间启动 Google Talk 会议。当我跑
MultiUserChat.isServiceEnabled(connection, "user@mydomain.com")
它返回假。我知道通过 GMail 客户端,可以开始群聊。这是否会因为我的 Google Apps 域中的某些内容而返回 false,或者 Google 是否使用其他方式在 Google Talk 中进行群聊?
事实证明,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");
不,截至今天,没有 Google Talk 客户端支持 XEP-45 多用户聊天 (MUC),Google Talk 也没有宣布 XMPP MUC 组件。1
Google 的所有 Google Talk 客户端都不支持 MUC,这是您检查的内容MultiUserChat.isServiceEnabled()
。但是,如果用户通过 Google Talk 使用第三方 XMPP 客户端(例如 Gajim),那么他可以像任何其他 XMPP 用户一样加入 MUC 房间。
另请参阅 Google productforums 上的此问题:http ://productforums.google.com/forum/#!topic/chat/HLyMGBxJM7Q
1但是有一个。看到这个答案。
我发现这个:<a href="https://bugs.freedesktop.org/attachment.cgi?id=27687" rel="nofollow noreferrer">Google Talk 多用户聊天规范
它显示了 Talk 和 XMPP 规范之间的一些差异。希望在 talk.google.com 服务上创建或加入私人 MUC 房间的第三方客户需要遵循这些规范。
房间名称必须遵循 private-chat-GUID@groupchat.google.com 的特定格式。
从客户端到talk.google.com 的状态广播必须包含一个实体能力元素。
Sure Talk 支持 XMPP。