无法在 android 中创建聊天室并从服务器(tigase 服务器)没有响应

Posted

技术标签:

【中文标题】无法在 android 中创建聊天室并从服务器(tigase 服务器)没有响应【英文标题】:Failed create chat room in android and getting No response from server (tigase server) 【发布时间】:2014-03-01 14:02:24 【问题描述】:

我正在开发一个使用 tigase 作为服务器的 IM 应用程序,并在 android 端使用 asmack 库。现在我可以注册/登录/聊天 p2p,但是当我创建聊天室时,我遇到了一个问题,android 端代码如下:

XMPPConnection connection = XmppConnectionManager.getInstance().getConnection();
try 
    MultiUserChat muc = new MultiUserChat(connection, "testroom" + "@" +  
        connection.getServiceName());
muc.create("nickname");
    ------
 catch (Exception e) 
e.printStackTrace();

执行 muc.create("nickname") 后,总是抛出异常,异常信息为:服务器无响应。在 tigase 服务器端,我在 etc/init.properties 中启用了 MUC 组件,如下所示:

--comp-name-1 = muc
--comp-class-1 = tigase.muc.MUCComponent

我已将项目修改为问题 create a group chat functionality in android and getting No response from server.. on muc.create() 但是还是不行,不知道为什么,需要你的帮助。

【问题讨论】:

我认为您的 MUC 组件无法正常工作。首先请使用 Pidgin 或 PSI 客户端验证您的 MUC 组件是否正常工作。 感谢您的评论。 MUC 组件工作正常。我可以通过 PSI 在“服务发现”中找到“多用户聊天”。 如果在服务发现中找不到 MUC,则 MUC 不起作用 我可以在服务发现中找到MUC。 @Haider,我在Android端使用了asmack库,如果asmack和tigase服务器之间的通信存在问题,我不知道。你有开发android IM app的经验吗,服务器端是tigase。 【参考方案1】:

我已经解决了这个问题。是我在客户端的问题,我必须指定服务器端配置的MUC服务名称,它与tigase服务名称不同,配置如下:

--virt-hosts = localhost  #tigase server name
--external= muc.localhost:muc-pass  #muc.localhost is muc service name

所以客户端代码如下:

   MultiUserChat muc = new MultiUserChat(connection, roomName  
                + "@muc." + connection.getServiceName());  

感谢@Haider。

【讨论】:

oooopppsss 对不起,我忘了告诉你如何在 TIGASE 中处理组件。很高兴看到你想通了

以上是关于无法在 android 中创建聊天室并从服务器(tigase 服务器)没有响应的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中创建聊天室会出现错误:“item-not-found(404)

如何使用 PHP 在 openfire 中创建聊天室并将用户添加到房间中

如何在我的颤振应用程序中创建 android 固定的聊天快捷方式?

我们如何在 UI 线程中创建处理程序以将数据发送到另一个线程

我们可以像在 android 中一样在 windows 中创建 XMPP 聊天客户端代码吗?

如何在 Android 中创建一个高级任务杀手无法杀死的服务