0

ユーザーと管理者の 2 人のユーザーがいます。ユーザーが新しいレコードを追加したときに、管理者がログインしている場合、管理画面にうなるメッセージを表示したいと考えています。

出来ますか?もしそうなら、どうすればこれを達成できますか?JMS は可能な解決策ですか?

4

1 に答える 1

1

ケースに合わせてプライベート チャット コンポーネントを変更できます

http://www.primefaces.org/showcase-labs/push/chat.jsf

一度、誰もがあなたのシステムにログインします。ユーザーをシステムに登録します。

public void login() {  
        RequestContext requestContext = RequestContext.getCurrentInstance();  

        if(users.contains(username)) {  
            loggedIn = false;  
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Username taken", "Try with another username."));  

            requestContext.update("growl");  
        }  
        else {  
            users.addUser(username);  
            pushContext.push(CHANNEL, username + " joined the channel.");  
            requestContext.execute("subscriber.connect('/" + username + "')");  
            loggedIn = true;  
        }  
    }

プッシュ通知を送信することで、個々のクライアントにメッセージを送信できます。

public void sendPrivate() {  
        pushContext.push(CHANNEL + privateUser, "[PM] " + username + ": " + privateMessage);  

        privateMessage = null;  
    }  

次に、来るメッセージを処理します

<p:socket onMessage="handleMessage" channel="/chat" autoConnect="false" widgetVar="subscriber"/>  

<script type="text/javascript">  
    function handleMessage(data) {  
        var chatContent = $(PrimeFaces.escapeClientId('form:public'));  
        chatContent.append(data + '<br />');  

        //keep scroll  
        chatContent.scrollTop(chatContent.height());  
    }  
</script>
于 2012-08-28T08:11:51.380 に答える