2012-11-20 40 views
0

我有一個包含多個用戶(客戶端1,客戶端2,...)的頁面,我想按下「Salir de reunion」按鈕1)將我重定向到所有客戶端的主頁(http://localhost:8080/FasMe/faces/Public/Inicio.xhtml)。重定向到所有客戶端中的一個頁面(每個客戶端都是SessionScoped ManagedBean)

每個客戶端都是SessionScoped ManagedBean。

enter image description here

我只得到重定向到用戶(客戶端)按下按鈕的網頁(/Public/Inicio.xhtml)。 我想在所有客戶端(瀏覽器)上執行重定向。我該怎麼辦?

ReunionActiva.xhtml

<h:panelGrid id="reunionPanel" columns="2" > 
      <h:commandButton value="Salir de Reunion" styleClass="btn" action="#{reunionBean.salirReunion}" ></h:commandButton>     
    </h:panelGrid> 

我的按鈕 「退出會議」 的商業邏輯是:

ReunionManagedBean.java @ManagedBean(name = 「usuarioBean」)

public String salirReunion(){ 

    Cuenta ctaCoordinador=participanteF.getCuentaReunion(reu, reuF.getCoordinadorReunion(reu.getIdReunion())); 
    Cuenta ctaParticipante=ctaF.getCuentaByUsuario(usuarioActualBean.getCurrent(), ctaCoordinador.getServidorTareas()); 

    // If user is ADMIN then I want to delete all user of meeting and close de Meeting 
    if(ctaCoordinador.getId().equals(ctaParticipante.getId())){ 
     Calendar cal = Calendar.getInstance(); 
     reu.setFechaFin(cal.getTime()); 
     reu.setEstado("Cerrada"); // It´s meaning setStatus CLOSE 
     reuF.modificacionReunion(reu); 

     List<CuentaHasReunion> p=participanteF.getAllParticipantes(reu); 
     for (Object element : p) { 
      CuentaHasReunion part= (CuentaHasReunion) element; 
      participanteF.bajaParticipante(part); //Here I delete all user from meeting 
      // Here is where I need to do the redirect to all Clients (Client1 , Client2) 
     } 
     ReunionSingleton.eliminarReunionActiva(reu); 
    } 
    // If user isn't ADMIN then I only delete user who click the button "salir reunion" 
    else{ 
     participanteF.bajaParticipante(participanteF.getParticipante(ctaParticipante, reu)); 

    } 

    return "/Public/Reunion.xhtml?faces-redirect=true"; 
} 
+0

在普通的JSF2/Ajax中,定期調用組件/ ajax調用來檢查會議是否仍處於活動狀態,如果不是,會導致重定向。在Primefaces中,有一個組件實現了這個功能,並將其呈現爲「從服務器向瀏覽器發送消息」,但我不記得它的名稱,也沒有使用它。 – SJuan76

回答

0

看看ICEfaces Push(似乎是第一個孩子與此塊)和PrimeFaces Push。通常網絡是基於請求的,所以每個客戶端都需要刷新。我相信這些允許客戶端通過ajax週期性詢問服務器上是否有任何有趣的事情,而且只需要很少的請求數據包。如果服務器說是,那麼客戶會說更新我。無論如何,我認爲這是你可能要找的。

如果你需要更同步的東西,你可能需要使用網絡套接字或RMI來實現,也許可以通過一個小程序來實現。

相關問題