分享

smack聊天室组的创建

 WindySky 2016-03-15
public XMPPConnection loginByUserName(String userName, String passWord) {
  ConfigTools configTools = new ConfigTools();
  ConnectionConfiguration config = new ConnectionConfiguration(configTools.getOpenfireIp());
  // serverIp表示的是你openfire服务器地址
  config.setReconnectionAllowed(false);
  config.setSendPresence(false);
  XMPPConnection connection = new XMPPConnection(config);
  try {
   connection.connect();
   connection.login(userName, passWord);
   System.out.println(connection.getUser() + " 登录即时通讯服务器成功!");
  } catch (Exception e) {
   System.out.println("登录即时通讯服务器失败!");
  }
  return connection;
 }
 
 public void creatMultiRoom(String userName, String passWord){
  try {
   // 使用XMPPConnection创建一个MultiUserChat 
   MultiUserChat muc = new MultiUserChat(loginByUserName(userName, passWord), "myroom@conference.jabber.org"); 
   // 创建聊天室 
   muc.create("testbot"); 
   // 获得聊天室的配置表单 
   Form form = muc.getConfigurationForm(); 
   // 根据原始表单创建一个要提交的新表单。 
   Form submitForm = form.createAnswerForm(); 
   // 向要提交的表单添加默认答复 
   for (Iterator fields = form.getFields(); fields.hasNext();) { 
       FormField field = (FormField) fields.next(); 
       if (!FormField.TYPE_HIDDEN.equals(field.getType()) 
   && field.getVariable() != null) { 
           // 设置默认值作为答复 
           submitForm.setDefaultAnswer(field.getVariable()); 
      
   
   // 设置聊天室的新拥有者 
   // List owners = new ArrayList(); 
   // owners.add("liaonaibo2\\40slook.cc"); 
   // owners.add("liaonaibo1\\40slook.cc"); 
   // submitForm.setAnswer("muc#roomconfig_roomowners", owners); 
   // 设置聊天室是持久聊天室,即将要被保存下来 
   submitForm.setAnswer("muc#roomconfig_persistentroom", true); 
   // 房间仅对成员开放 
   submitForm.setAnswer("muc#roomconfig_membersonly", false); 
   // 允许占有者邀请其他人 
   submitForm.setAnswer("muc#roomconfig_allowinvites", true); 
   // 能够发现占有者真实 JID 的角色 
   // submitForm.setAnswer("muc#roomconfig_whois", "anyone"); 
   // 登录房间对话 
   submitForm.setAnswer("muc#roomconfig_enablelogging", true); 
   // 仅允许注册的昵称登录 
   submitForm.setAnswer("x-muc#roomconfig_reservednick", true); 
   // 允许使用者修改昵称 
   submitForm.setAnswer("x-muc#roomconfig_canchangenick", false); 
   // 允许用户注册房间 
   submitForm.setAnswer("x-muc#roomconfig_registration", false); 
   // 发送已完成的表单(有默认值)到服务器来配置聊天室 
   muc.sendConfigurationForm(submitForm); 
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
  
 public IQ joinXml(){ 
    IQ iq = new IQ() { 
       public String getChildElementXML() { 
       StringBuilder buf = new StringBuilder(); 
            buf.append(""); 
            buf.append(""); 
            buf.append("<").append("conference").append(" name=\"ccc\"").append(" autojoin=\"false\"").append(""); 
            buf.append(""); 
            buf.append(""); 
            return buf.toString(); 
       
    }; 
    iq.setType(IQ.Type.SET); 
    //方法如名,这里是设置这份报文来至那个JID,后边的/smack是这段信息来至哪个端,如spark端就是/spark,android就是/Smack 
    iq.setFrom("testbot@naibo.liao.com/Smack"); 
    return iq; 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多