在原始浏览器中未收到推送事件

时间:2015-12-08 20:45:21

标签: jsf jsf-2 primefaces primefaces-push

我有一个primefaces数据网格,我试图使用primefaces Push进行更新。我可以看到onMessage方法被调用,但是如果我在onMessage方法中设置了断点,组件本身只会更新。这是处理程序:

@PushEndpoint("/prices")
public class PricesResource {

    private static final Logger logger = Logger.getLogger("PricesResource");

    @OnMessage(encoders = {JSONEncoder.class})
    public OrderBook onMessage(OrderBook orderBook) throws InterruptedException {
        logger.log(Level.INFO, "PricesResource.onMessage price {0}", orderBook.getPrice());
        return orderBook;
    }
}

这是我在index.xhtml中调用更新组件的代码:

<p:socket onMessage="handleMessage" channel="/prices" />

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

    <p:remoteCommand name="updateWidgets"
             actionListener="#{parliamentManager.findLatestPrices}"
             update="resultDisplay"/>

目前该组件位于index.xhtml的底部:

<h:panelGroup id="resultDisplay">                          
<p:dataGrid id="prices" var="orderBooks" value="#{parliamentManager.latestPricesResults}" columns="3" rows="12">
<p:column>
    <p:panel header="#{orderBooks.bidOrderId.member.memberId}">
        <h:panelGrid columns="1">
            <h:outputText value="#{orderBooks.price}" />
    </h:panelGrid>
        </p:panel>
</p:column>
</p:dataGrid>
</h:panelGroup>

我非常难过为什么会这样,任何建议都会受到赞赏。

0 个答案:

没有答案