`

利用前后端事件总线实现Web推送

阅读更多

  Web页面如何在服务器数据变更的时候自动刷新呢? 由于http只能是UI单向请求服务器,所以一般的做法是在页面做个定时刷新的JS功能,但这种做法有以下不足:

  1.不利于管理,如果需要这种功能的页面多,页面分散

  2.盲目刷新,不管服务器有没有真的数据变更,只要到了轮询时间点就肯定调服务器刷新一次

  3.粗粒度, 无法区别不同的变更,如 新数据产生的时候 才刷新,修改数据就不需要刷新,新增100条数据才刷新 等情况

准对上面情况,可采用 分别在前台和后台分别实现事件总线 方案来实现,具体如下:

  将各种需要主动推送的变更当做不同的事件来对待,后台提供一个集中的缓存来收集这类事件。相应的业务方法处理完后,以事件的方式放入到该缓存中去,产生的时间也要一起保留.并给前端提供api来查询指定时间段产生的事件

  涉及到的api如下:

    getEvents(String[] eventIds, long startTimeInMilliseconds, long endTimeInMilliseconds)

  前台利用jQuery,Json等技术。定时调上面的api获取指定时间该系统产生的所有事件,放入到数组中。

  相关业务页面只需要向其注册监听所关心的事件,并提供相应回调方法.

  前端事件总线将定时采集到得事件 通过回调方法统一分发给不同注册的页面,具体页面在回调方法中做ajax刷新功能,也可以将事件收集,如收集到了100条再做刷新,或分类来对待如 新增数据事件才刷新 等过滤操作

 

 这样就实现了Web推送的统一管理,用户在此架构基础上做一些更加精细化得操作都是可以的.具体不再详述

 

 

分享到:
评论

相关推荐

    事件总线EvetnBus 实现设计Demo

    在Java中,利用Canal这样的工具结合自定义的事件总线实现,可以有效地处理数据库变更事件,进而驱动业务逻辑的执行。这种设计模式在大型分布式系统中尤其有价值,因为它允许各个服务独立开发和迭代,同时保持整个...

    基于C#编程实现事件总线源码+项目说明.zip

    事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式...事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。

    android基于livedata实现的事件总线框架

    鉴于此,Android开发者们探索出一种新的解决方案,即基于 LiveData 实现的事件总线框架。这个框架利用了Android Architecture Components的优势,提供了更轻量级、无依赖第三方库的事件发布/订阅机制。 LiveData 是...

    C#版本EventBus事件总线实例源码

    【标题】:“C#版本EventBus事件总线实例源码”是关于在C#编程语言中实现事件总线(EventBus)模式的一个实践项目。事件总线是一种设计模式,它允许应用程序的不同组件之间通过发布和订阅事件进行通信,而不是直接...

    Android-Kotlin编写的事件总线库

    事件总线是一种观察者模式的实现,允许应用的不同部分之间松耦合地发布和订阅事件。与传统的Android组件通信方式(如Intent或回调)相比,事件总线提供了更灵活的通信机制。Kotlin的语法简洁、类型安全,使得构建和...

    EventBus事件总线c#

    【EventBus事件总线c#】是一个用于C#和.NET框架中的事件驱动编程模式的简单实现,它允许组件之间解耦通信。事件总线的概念来源于软件设计模式,它提供了一个中心化的机制,使得应用程序的不同部分可以发布和订阅事件...

    Node.js-一个事件总线框架用于事件驱动编程

    然而,这里提到的是在 Node.js 环境下使用事件总线框架进行事件驱动编程,这可能涉及到自定义实现或使用特定的库,如 `eventemitter3` 或 `busboy`。 在 Node.js 中,内置的 `events` 模块提供了 EventEmitter 类,...

    Event Bus C# 事件总线

    下面将详细解释事件总线的概念、其工作原理以及如何在C#中实现一个简单的事件总线实例。 事件总线是基于发布/订阅(Publish-Subscribe)模式的,其中事件发布者并不直接知道事件订阅者,而是通过事件总线来传递消息...

    Node.js-EventBusOttoRxBus事件总线使用

    RxBus是基于ReactiveX(RxJava)的事件总线,它利用了反应式编程的概念。RxJava是一个强大的异步编程库,它将观察者模式和函数响应式编程结合在一起。RxBus使用`Observable`来发布事件,订阅者通过`subscribe()`方法...

    多播事件总线 Avis技术文档资料

    Avis 是一种实现多播事件总线的技术,它允许系统组件之间通过发布/订阅模式进行通信,无需直接耦合。下面我们将详细探讨 Avis 的概念、工作原理以及如何使用。 1. **什么是多播事件总线?** 多播事件总线是一种...

    Node.js-基于greenrobot的eventBus使用RxJava实现的事件总线

    在给定的标题“Node.js-基于greenrobot的eventBus使用RxJava实现的事件总线”中,我们可以推断这是一个关于在Android应用中使用EventBus的实践,特别地,是greenrobot的EventBus与RxJava的结合使用。 Greenrobot的...

    C#版本EventBus事件总线实例源码2019

    在C#中,我们可以利用委托(Delegate)和事件(Event)来实现基础的事件处理机制。委托是类型安全的函数指针,可以将多个方法绑定到同一个事件上,实现多播行为。事件则是在类中定义的私有委托实例,用于封装对外...

    消息总线java实现

    在实现过程中,可以使用Java的事件驱动模型,如`java.util.EventObject`和`java.util.EventListener`,或者使用观察者模式来构建消息总线的基础设施。此外,Java的并发库(如`java.util.concurrent`包)将有助于处理...

    C#版本EventBus事件总线实例源码-9s.rar

    C#作为一种强大的面向对象编程语言,同样可以利用事件总线来提升应用程序的灵活性和可扩展性。在这个"9s.rar"压缩包中,我们很可能会找到一个基于C#实现的EventBus实例源码。现在,让我们深入探讨一下C#中的事件总线...

    C#版本EventBus事件总线实例源码_(0610).rar.rar

    C#作为一种强大的面向对象编程语言,同样可以利用事件总线来构建灵活、可扩展的应用程序。这个压缩包“C#版本EventBus事件总线实例源码_(0610).rar.rar”包含了C#实现事件总线模式的一个实例源码,我们可以从中学到...

    EventBus:C#事件总线实现

    事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解分解的目的。 我们来看看事件总线的处理流程: 事件总线就相当于一个介于发布者...

    多播事件总线 Avis.7z

    例如,在一个Web应用中,前端组件可以通过事件总线共享用户操作,如点击事件,后端服务可以通过事件总线进行数据更新或通知其他服务。 总之,“多播事件总线 Avis”提供了一种高效、灵活的通信机制,有助于构建复杂...

    机器学习打造58同城APP个性化推送系统

    7. 实现技术:推送系统整体架构中,涉及客户端、推送通道、消息总线、通用推送平台和消息处理等多个层面。其中,客户端需要适配不同的操作系统(如安卓和苹果),以确保推送通知能够覆盖所有用户。 8. 兴趣挖掘和...

    C#版本EventBus事件总线实例源码(0520_).rar

    在IT领域,尤其是在软件开发中,事件总线(Event Bus)是一种常见的设计模式,它用于在应用程序的不同组件之间传递消息,实现松耦合。在C#编程语言中,我们可以使用各种库来实现事件总线机制,例如:NEventBus、...

Global site tag (gtag.js) - Google Analytics