7

我正在使用 Smack 在 Java/Spark 中开发一个内部仪表板,该仪表板将在 LDAP 用户组之间启动 Google Talk 会议。当我跑

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

它返回假。我知道通过 GMail 客户端,可以开始群聊。这是否会因为我的 Google Apps 域中的某些内容而返回 false,或者 Google 是否使用其他方式在 Google Talk 中进行群聊?

4

3 回答 3

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");
于 2013-02-20T22:04:25.833 回答
1

不,截至今天,没有 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但是有一个。看到这个答案

于 2013-02-16T00:03:14.527 回答
0

我发现这个:<a href="https://bugs.freedesktop.org/attachment.cgi?id=27687" rel="nofollow noreferrer">Google Talk 多用户聊天规范

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

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

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

  3. 如果用户希望更改他们在房间内的昵称,客户端必须在发送带有新昵称的出席信息节之前将旧昵称设置为不可用。

Sure Talk 支持 XMPP。

于 2018-06-26T03:03:54.230 回答