显示导航

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

365bet地区

格雷姆·罗彻(Graeme Rocher)

365bet地区版本 3.3.1

365bet地区培训

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

入门

365bet地区服务器发送事件.

您将需要什么

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

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

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

如何完成指南

要开始,请执行以下操作

要么

  • 克隆资料库
    去克隆

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

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

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

要完成指南,请转到初始

  • 光盘进入

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

编写申请

添加RxJava依赖项

第一步是配置必要的Gradle依赖关系这基本上意味着添加对RxJava插件365bet地区对于365bet地区建立gradle文件

依赖项编译"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

下一步是实施指数如果未指定显式操作,则这是控制器执行的默认操作

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

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

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

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

通过使用接收helper的各种方法,您可以将值传递给Observer。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地区欢迎来到365bet地区 <> 样式="文字对齐:中央;字体大小:像素" ID="信息">

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

接下来添加以下内容

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

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

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

来自服务器响应的标头

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

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

运行应用程序

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

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

365bet地区您需要365bet地区帮助吗

OCI赞助了本指南的创建OCI提供了几种365bet地区365bet地区服务:

免费咨询

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

365bet地区Grails OCI团队