如何向其他用户发送通知

时间:2014-06-06 16:37:33

标签: java-ee

我花了很多时间思考如何使用primefaces push实现通知,我没有找到实现的逻辑,任何人都可以帮助我,我在我的gradueted项目中做这项工作。

我的协作应用程序是一个共享编辑器,为此我将ckeditor与togetherJS集成,这个应用程序可以帮助来自不同文化的用户。

现在我需要做关于语言的通知,例如,当用户连接时,他选择语言(arabe,或法语或英语),当两个用户显示相同语言时,系统通知第三个用户其他人使用的语言。

我的问题,我没有找到如何识别用户并确定选择与其他语言不同的语言的用户,以及如何使用primefaces push向该用户发送通知。

1 个答案:

答案 0 :(得分:1)

Primefaces推送非常容易.. 让我试着清除它..

您需要将其放入web.xml

<servlet-mapping>
    <servlet-name>Push Servlet</servlet-name>
    <url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
<servlet> 
    <servlet-name>Push Servlet</servlet-name> 
    <servlet-class>org.primefaces.push.PushServlet</servlet-class> 
     <async-supported>true</async-supported> 
</servlet>

然后你只需要在primefaces页面示例(试试计数器) http://www.primefaces.org/showcase/push/counter.xhtml

您需要订阅频道     

<script type="text/javascript">
    function handleMessage(data) {
        alert(data);
    }
</script>

第二件事就是创建bean

@ManagedBean
@ApplicationScoped
public class GlobalCounterView implements Serializable{

    private volatile int count;

    public int getCount() {
    return count;
}

public void setCount(int count) {
    this.count = count;
}

public void increment() {
    count++;

    EventBus eventBus = EventBusFactory.getDefault().eventBus();
    eventBus.publish("/counter", String.valueOf(count));
}
}

创建资源监听器

@PushEndpoint( “/计数器”)     公共类CounterResource {

@OnMessage(encoders = {JSONEncoder.class})
public String onMessage(String count) {
    return count;
}
}

这应该够了..

将在页面中的每一个..将被吸引到频道..当有人举起计数器时,发送到频道的每条消息都会被通知

一旦这将起作用,你只需要为不同的用户使用语言通道。当用户选择语言时,你将订阅不同的频道(如反对,es等..)

因此,一旦用户使用某种语言登录,就会向订阅该语言频道的所有用户发送一条消息

Simpe ..希望有所帮助

编辑: http://kahimyang.info/kauswagan/code-blogs/1298/using-primefaces-primepush-with-tomcat-7

此链接也可以帮助您..