365bet地区使用365bet地区发送服务器发送的事件

365bet地区本指南将引导您逐步了解如何使用365bet地区和RxJava发送服务器已发送事件

s格雷姆·罗彻(Graeme Rocher)

365bet地区版本 4.0.1

365bet地区培训

365bet地区培训由创建并积极维护365bet地区框架的人们开发和交付

入门

365bet地区在本指南中,您将构建一个365bet地区应用程序,该应用程序通过以下方式与JavaScript客户端进行通信服务器发送事件.

您将需要什么

要完成本指南,您将需要以下内容

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

  • 安装了JDK或更高版本JAVA首页适当配置

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目通常是一个简单的365bet地区应用程序,其中包含一些其他代码,可以帮助您快速入门

  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入grails引导服务器发送事件初始

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails指导服务器发送事件完成

编写申请

添加RxJava依赖项

第一步是配置必要的Gradle依赖关系这基本上意味着添加对RxJava插件365bet地区用于365bet地区和Micronaut生成gradle中的reactx文件

"我的reactivex rxjava"编译"org grails插件rxjava"
}

RxJava用于促进反应式编程模型来将事件发送到JavaScript客户端

创建一个控制器

接下来创建一个名为滴答滴答365bet地区如果您安装了365bet地区,则可以通过运行grails创建控制器命令,否则您可以使用随附的365bet地区w包装纸

$ ./grailsw创建控制器TickTock
第一次运行ils命令应用程序依赖项将从互联网上下载后续调用将更快

命令的输出将如下所示

创建grails应用程序控制器示例TickTockController groovy创建src测试groovy示例TickTockControllerSpec groovy

365bet地区应用程序控制器示例365bet地区365bet地区目录将使用由grails codegen defaultPackage价值grails应用配置会议应用yml决定使用哪个包

现在您已经有了一个控制器,您需要对其进行修改以利用RxJava功能。为此,添加必要的导入并使控制器实现grails rx Web RxController特征

grails应用程序控制器示例TickTockController groovy
 RX观察者
 rx可观察
 grails rx Web RxController
 java有用的并发TimeUnit
 常规转换CompileStatic

演示服务器已发送事件控制器
静态编译
 TickTockController 实施

下一步是实施指数

RxController特质添加了一个名为接收允许您控制从控制器发送到客户端的响应

为了开始发送服务器发送事件,我们将使用接收流方法

grails应用程序控制器示例TickTockController groovy
定义 指数接收流观察者观察者

方法接受一个接受RX观察者实例,当您准备好通过数据发送数据时,可以使用该实例将事件发送到客户端RX观察者接口

通过使用接收onNext方法例如

grails应用程序控制器示例TickTockController groovy
对于一世 (0 .. 5)) {
    如果2 == 0观察者onNext rx渲染'')
        )
    }
    其他观察者onNext rx渲染'ock'睡觉1000
}

在此示例中,我们遍历了and和call之间的值RX渲染对于奇数和偶数值,以便分别输出Tick或Tock的调用睡觉是否可以模拟缓慢的请求,例如是否从外部Web服务获取值

发送事件完成后,您可以使用ObserveronCompleted活动结束

grails应用程序控制器示例TickTockController groovy
观察者onCompleted

最终完成的逻辑如下所示

grails应用程序控制器示例TickTockController groovy
定义 指数接收流观察者观察者对于一世 (0 .. 5)) {
            如果一世2 == 0观察者onNext rx渲染'')
                )
            }
            其他观察者onNext rx渲染'ock'睡觉1000观察者onCompleted

请注意,如果睡觉实际上是对应用程序的一种具体要求,即使用间隔方法

grails应用程序控制器示例TickTockController groovy
禁止警告('DuplicateNumberLiteral')
定义 () {
    整型一世0接收流可观察的间隔1, TIMEUNITSECONDS地图i如果2 == 0RX渲染'')
        }
        其他RX渲染'ock')
        }
    })
}

实施客户

要实施客户,首先要打开365bet地区应用程序观看次数索引gsp365bet地区文件,并在“欢迎使用365bet地区”下方添加其他标题

标签

365bet地区应用程序观看次数索引gsp

欢迎来到365bet地区 <> 样式="文字对齐:中央;字体大小:像素" ID="信息">

我们将使用此标头放置从“服务器已发送事件”接收的内容

接下来添加以下内容

上面使用服务器发送事件规范的JavaScript代码事件源对象开始从控制器接收事件

365bet地区应用程序观看次数索引gsp
eventSource事件源"tickTock");
您将需要一个现代浏览器使用事件源宾语

然后,它注册一个侦听器,该侦听器将更新先前定义的

来自服务器响应的标头

365bet地区应用程序观看次数索引gsp
eventSource消息 = 功能事件控制台日志"数据"事件数据文档getElementById'信息'innerHTML事件数据

就是这样,您现在可以运行该应用程序了

运行应用程序

要运行该应用程序,请使用gradlew bootRun命令将在端口上启动应用程序

然后,您可以导航到HTTP本地主机365bet地区并且您将在“欢迎使用365bet地区”消息下方看到“ Tick”和“ Tock”消息,因为浏览器从服务器接收事件

您需要365bet地区帮助吗

365bet地区服务:

免费咨询

OCI 365bet地区团队包括365bet地区联合创始人检查我们的并向发展和维护365bet地区的工程师学习

Grails OCI团队