我正在尝试为IM做一个无服务器的应用程序。我使用apple bonjour协议来发现xmpp服务。但是一旦我得到那些我就无法连接到我的主机(linux计算机使用pidgin + bonjour)。
这是我的代码(取自here):
public class Xmpp extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... arg0)
{
ConnectionConfiguration connConfig =
new ConnectionConfiguration("192.168.0.11", 5298, "bonjour");
XMPPConnection connection = new XMPPConnection(connConfig);
try
{
// Connect to the server
connection.connect();
// Most servers require you to login before performing other tasks.
connection.login("grea08", "mypass");
// Start a new conversation with John Doe and send him a message.
Chat chat = connection.getChatManager().createChat("grea09@192.168.0.11", new MessageListener() {
public void processMessage(Chat chat, Message message) {
// Print out any messages we get back to standard out.
Log.v(getClass().getName(), "Received message: " + message);
}
});
chat.sendMessage("Howdy!");
} catch (XMPPException e)
{
// TODO Auto-generated catch block
Log.e(getClass().getName(), "Xmpp error !", e);
}
// Disconnect from the server
connection.disconnect();
return null;
}
}
我有一个XmppException
“没有来自服务器的回应”。我认为主机不是XMPP服务器,我们必须使用协议this方式。
答案 0 :(得分:1)
Smack和aSmack不支持XEP-0174 (又称链接本地或无服务器消息传递)。 Jonas patches从未进入后备箱。要跟踪的相应问题是SMACK-262。
答案 1 :(得分:1)
Gibberbot开源项目支持XMPP 和 Bonjour无服务器通信。
它还can be installed from Google Play。
也许您可以查看其来源并为您的应用提取相关代码。 : - )
答案 2 :(得分:0)
尝试使用配置创建XMPPConnection
:
ConnectionConfiguration config = new ConnectionConfiguration("192.189.0.11", port);
//Set optional configurations on the config object.
Connection connection = new XMPPConnection(config);