在Smack中SASL和SASL PLAIN有什么区别?

Wei*_*ing 2 android xmpp sasl smack asmack

我正在处理有关IM的事情.它涉及XMPP.我在Android上开发了一个应用程序,所以我使用了一个思科.我想登录google talk,在这里(链接如下)

https://developers.google.com/talk/open_communications

谷歌说只支持SASL PLAIN.但是当我在INTERNET上搜索时,很多人都认为google talk不支持SASL,所以需要这段代码:

    connectionConfig.setSASLAuthenticationEnabled(false);
Run Code Online (Sandbox Code Playgroud)

我很迷惑; 谁能告诉我哪个是正确的,或SASL和SASL PLAIN之间的区别?

Zas*_*ash 6

SASL是一种用于身份验证的框架和协议,旨在嵌入到其他协议中,以便可以重用这些库.

SASL PLAIN是一种可以在SASL上使用的特定身份验证机制.

在整个协议,服务器和客户端中,定义了许多其他SASL机制,并提供不同程度的支持.在XMPP中使用的主要是PLAIN,DIGEST-MD5(在旧的XMPP RFC强制)和SCRAM-SHA-1(在新的XMPP RFC强制).

无论如何,回答你的问题:

如果您禁用SASL,那么Smack可能会使用所谓的遗留身份验证.如果您不使用TLS加密连接,这可能会解决问题,因为许多服务器不允许PLAIN通过未加密的连接.