Android - 基于 websockets 的 XMPP
Android - XMPP over websockets
我正在尝试在我的 android 应用程序中使用基于 WebSockets 的 XMPP 实现聊天功能。
我找到了一个库 (org.igniterealtime.smack),但连接是通过 TCP 而不是 WebSockets 建立的,我不希望这样。
是否有人必须实现相同的功能并能指出正确的方向?
对 Smack 的 Websocket 支持被跟踪为 SMACK-835。它目前在 Smack 的主要分支中,并计划成为 Smack 4.5 版本。
您现在可以通过消费 Smack 预发行版或来自 https://www.igniterealtime.org/archiva/repository/maven/
的夜间工件来使用它
不确定它是否可以并且不违反 TOS 等等,但第一句话暗示了 XMPP + WebSocket 的一般指导,而不是严格要求 Smack 回答 - 你可以使用 JaXMPP 库(https://github.com/tigase/jaxmpp), which already supports WebSocket and and is compatible with Android (StorkIM, https://github.com/tigase/stork 基于在上面)。
建立WebSocket连接非常容易(甚至加密):
JID user = JID.jidInstance("user@example.com/resource");
String password = "password";
Jaxmpp contact = new Jaxmpp();
contact.getModulesManager().register(new MessageModule());
contact.getConnectionConfiguration().setConnectionType(ConnectionConfiguration.ConnectionType.websocket);
contact.getConnectionConfiguration().setBoshService("wss://xmpp.example.com:5291");
contact.getConnectionConfiguration().setUserJID(user.getBareJid());
contact.getConnectionConfiguration().setUserPassword(password);
try {
contact.login(true);
if (contact.isConnected()) {
contact.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
(免责声明:我来自 Tigase 团队,该团队创建了 JaXMPP 和 StorkIM)
我正在尝试在我的 android 应用程序中使用基于 WebSockets 的 XMPP 实现聊天功能。
我找到了一个库 (org.igniterealtime.smack),但连接是通过 TCP 而不是 WebSockets 建立的,我不希望这样。
是否有人必须实现相同的功能并能指出正确的方向?
对 Smack 的 Websocket 支持被跟踪为 SMACK-835。它目前在 Smack 的主要分支中,并计划成为 Smack 4.5 版本。
您现在可以通过消费 Smack 预发行版或来自 https://www.igniterealtime.org/archiva/repository/maven/
的夜间工件来使用它不确定它是否可以并且不违反 TOS 等等,但第一句话暗示了 XMPP + WebSocket 的一般指导,而不是严格要求 Smack 回答 - 你可以使用 JaXMPP 库(https://github.com/tigase/jaxmpp), which already supports WebSocket and and is compatible with Android (StorkIM, https://github.com/tigase/stork 基于在上面)。
建立WebSocket连接非常容易(甚至加密):
JID user = JID.jidInstance("user@example.com/resource");
String password = "password";
Jaxmpp contact = new Jaxmpp();
contact.getModulesManager().register(new MessageModule());
contact.getConnectionConfiguration().setConnectionType(ConnectionConfiguration.ConnectionType.websocket);
contact.getConnectionConfiguration().setBoshService("wss://xmpp.example.com:5291");
contact.getConnectionConfiguration().setUserJID(user.getBareJid());
contact.getConnectionConfiguration().setUserPassword(password);
try {
contact.login(true);
if (contact.isConnected()) {
contact.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
(免责声明:我来自 Tigase 团队,该团队创建了 JaXMPP 和 StorkIM)