目前我使用prime push将刷新命令发送到客户端的jsf页面,然后jsf页面将重新加载并呈现更改。看起来像这样:
服务器:
EventBus eventBus = EventBusFactory.getDefault().eventBus();
eventBus.publish("/event/" + eventId, "updateEntries");
客户端:
<p:socket channel="/event/#{detailController.id}" onMessage="handlePush"/>
<script type="text/javascript">
function handlePush(msg) {
switch (msg) {
case "updateEntries":
updateEntries();
break;
}
}
</script>
<h:form>
<p:remoteCommand name="updateEntries" actionListener="#{detailController.reloadEntries()}" update="entries" />
</h:form>
然而,这种方法效果很好,但我认为如果我有更多客户端,这将成为性能问题,因为每个客户端都会同时请求孔数据。
我的想法是对已更改/添加的实体进行编码,并通过推送将json传输到客户端并解码json并将其添加到数据表中。
有没有其他方法可以处理大量需要即时更新的客户?