JSF的长轮询(待处理请求)

时间:2012-03-09 15:45:35

标签: jsf richfaces long-polling jsf-1.2 chatroom

我需要为聊天室实施长轮询或待处理请求。我尝试了a4j:push,但似乎不像真正的长轮询方法(参见下面的讨论:https://community.jboss.org/message/16614)。

问题是:我有哪些替代方案可以实现长时间轮询?

我正在使用JSF 1.2,JAVA EE 6和RichFaces 3.3.2。

提前完成!

2 个答案:

答案 0 :(得分:1)

您需要使用RichFaces中的a4j:poll组件。 exadel live demo有一个非常好的样本并解释了主要属性。另外,您可以在official documentation中获得更多信息。

也许您想查看聊天实现示例而不是轮询。有一个问题:

https://stackoverflow.com/a/1577486/1065197

答案 1 :(得分:0)

尝试使用netty-socketio java项目。它有很长的民意支持。在jsf页面上使用Socket.IO client javascript lib。

Javascript lib用法示例:

<script type="text/javascript">
    var socket = io.connect('http://localhost:81', {
      'transports' : [ 'xhr-polling' ],
      'reconnection delay' : 2000,
      'force new connection' : true
    });
    socket.on('message', function(data) {
         // here is your handler on messages from server
    });

    // send object to server
    var obj = ...
    socket.json.send(obj);
</script>