2017-01-11 2 views
1

그룹 채팅을위한 공간을 만들었습니다. 나는 그룹을 만들고 성공적으로 회원을 추가했지만, 문제는 그룹의 구성원이 지속되지 않는다는 것입니다. 을 새로 고친 후 그룹 구성원이 자동으로 삭제됩니다.그룹 회원이 android에서 계속 불을 피우지 않고 있습니까?

코드 :

코드 : 생성 재버 ID

private MultiUserChat getMultiUserChat("123456789"){ 
     MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(getXmppConnection()); 
     String jid = "[email protected]"; 
     return manager.getMultiUserChat(jid); 
    } 

코드 : 만들기 및 방에 합류

public void createReservedRoom(Context context, String jidName, String roomName, String nickName){ 

     try { 
      connect(); 

      MultiUserChat muc = getMultiUserChat(jidName); 
      muc.create(nickName); 
      try { 
       //PreferenceUtils.setObject(context, muc, PreferenceUtils.MUC_OBJ); 
      }catch (Exception e){ 
       e.printStackTrace(); 
      } 
      Form form = getForm(muc, roomName); 

      // Send the completed form 
      muc.sendConfigurationForm(form); 

      muc.join(nickName); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 

코드 : 생성 룸

,
private Form getForm(MultiUserChat muc, String roomName){ 
     Form form = null; 
     try { 
      form = muc.getConfigurationForm().createAnswerForm(); 

      // Create a new form to submit based on the original form 
      form.setAnswer("muc#roomconfig_passwordprotectedroom", false); 
      form.setAnswer("muc#roomconfig_roomname", roomName); 
      form.setAnswer("muc#roomconfig_persistentroom", true); 
      form.setAnswer("muc#roomconfig_changesubject", true); 
      form.setAnswer("muc#roomconfig_publicroom",true); 
      form.setAnswer("muc#roomconfig_allowinvites",true); 
      form.setAnswer("muc#roomconfig_membersonly",true); 
      form.setAnswer("muc#roomconfig_moderatedroom",false); 

      // Sets the new owner of the room 
      List<String> owners = new ArrayList<String>(); 

      //Be carefull: if members does not exists, it brakes! 

      owners.add("[email protected]"); 
      form.setAnswer("muc#roomconfig_roomowners", owners); 
     } catch (SmackException.NoResponseException e) { 
      e.printStackTrace(); 
     } catch (XMPPException.XMPPErrorException e) { 
      e.printStackTrace(); 
     } catch (NotConnectedException e) { 
      e.printStackTrace(); 
     } 

     return form; 
    } 

답변

0

Groupchat는 "구성원"을 지원하지 않습니다.

그룹 채트는 점유자 (그룹 채트에서 실제로 세션에 참여한 사람) 및 제휴, 특정 역할 (소유자, 관리, 회원 및 출장자)이있는 사용자를 가질 수 있습니다.

회원이된다는 것은 기본적으로 사용자가 채팅의 사회자 (관리자)가 아님을 의미합니다. 하지만 기본적으로 추가하는 각 사용자가 다음 세션에서 주어진 그룹 챠트에 자동으로 가입하기를 원한다고 생각합니다. 따라서 사용자는 그룹 쉼표에 가입해야합니다.

groupchat의 whatsapp-like 사용자를 원하면 모든 "admin"제휴를 제공하거나 주어진 그룹 채널에 대한 모든 구독을 검색하여 시뮬레이션 할 수 있습니다. 그것은 큰 주제입니다 ...

+0

안녕하세요, 자습서 또는 동일한에 대한 참조를 제안 할 수 있습니까 ??? –

+0

http://xmpp.org/extensions/xep-0045.html 일단 내가 "어떻게 해킹"하는 방법에 대한 답변을 더 많거나 적게 (물론 당신이 Affiliations의 일부 기본 기능을 잃게됩니다) 지속적인 회원 목록을 가지고 http://stackoverflow.com/questions/37431642/create-muc-group -like-whatsapp-android/37434195 # 37434195 및 http://stackoverflow.com/questions/37524493/smack-presence-listener-in-multi-user-chat/37525135#37525135 (잊지 마세요. 도움이된다면 투표하십시오!) -> SMACK docs : http://download.igniterealtime.org/smack/docs/latest/documentation/extensions/muc.html – MrPk

관련 문제