“发送要素到流服务输出连接器”可用于通过流服务的 WebSocket 将事件数据作为要素 JSON 进行广播。客户端应用程序可以订阅流服务的 WebSocket 以接收正在广播的要素记录。
流服务类似于传统地图和要素服务,因为在浏览 ArcGIS Server 的 REST 服务目录的内容时,可以找到这些流服务。流服务是一种 ArcGIS Server 服务,仅当使用 ArcGIS GeoEvent Server 许可角色将实时功能添加到 ArcGIS Enterprise 时才可用。流服务强调客户端-服务器工作流的低延迟实时数据传播。流服务与传统地图和要素服务之间的关键区别在于:流服务通常不提供数据持久性。流服务的存储最新功能是这种概括的一个例外。流服务利用 WebSocket 技术与客户端建立双向通信和数据传播。客户端订阅实时接收数据,而非轮询地理数据库以检索数据。
除非“发送要素到流服务输出连接器”已配置并将其合并到 GeoEvent 服务中,否则已发布的流服务将不会接收或广播任何数据。
有关流服务的详细信息,请参阅流服务。流服务教程包括练习以更加熟悉流服务。GeoNet 博客流服务、存储最新和相关功能中提供了流服务功能的视频。
用法说明
- 可以使用此输出连接器将事件记录数据格式化为要素 JSON 并通过流服务的 WebSocket 来广播要素记录。
- 此输出连接器可将 JSON 出站适配器与流服务出站传输进行配对。
- 要使用流服务,您必须拥有许可的ArcGIS Server、ArcGIS GeoEvent Server,并且 ArcGIS GeoEvent Server 服务必须运行。
- 如果 ArcGIS Server 下的 ArcGIS GeoEvent Server 正在运行,则可以将其与 ArcGIS Enterprise 门户进行联合,但是在利用流服务时,如果未联合 ArcGIS Server,则管理通常更加简单。
- 配置新输出时提供的“发布流服务”功能可用于直接在 GeoEvent Manager 中发布流服务。
- 发布流服务时,您应该使用注册到 GeoEvent Server 的服务器连接作为其默认数据存储。
- 要发布流服务,您必须具有现有 GeoEvent 定义,其架构可反映流服务中的所需字段。
- 流服务的基础 WebSocket 将作为 ArcGIS GeoEvent Server(而非 ArcGIS Enterprise)的一部分运行。使用默认服务器连接发布流服务,并且此服务器连接的 URL 反映 ArcGIS Enterprise 门户端点时,服务发布机制将处理将流服务发布到 ArcGIS GeoEvent Server 正在运行的计算机。已发布的服务将作为内容项注册到 ArcGIS Enterprise 门户。
- 工作流分离最佳实践建议将 ArcGIS Enterprise 部署到独立于用于运行 ArcGIS GeoEvent Server 的计算机的服务器计算机。GeoEvent Server 中的默认服务器连接将维护相关信息,这些信息有助于识别应发布流服务的正确计算机。
参数
参数 | 描述 |
---|---|
名称 | 用于在 GeoEvent Manager 中引用的输出连接器的描述性名称。 |
ArcGIS Server 连接 | 作为数据存储注册到 GeoEvent Server 的 ArcGIS Server 或 ArcGIS Enterprise 连接。 注:发布流服务时,建议将 ArcGIS Server 或 ArcGIS Enterprise 连接注册为应使用的 GeoEvent Server 默认数据存储。必须将流服务发布到使用 GeoEvent Server 角色许可的 ArcGIS Server。不支持将流服务发布到未获得许可并配置为 GeoEvent Server 的ArcGIS Server。 |
文件夹 | ArcGIS REST 服务目录中发现的 ArcGIS Server 服务文件夹。 目前,无法将流服务发布到 ArcGIS Enterprise 门户内容项文件夹。与 ArcGIS Enterprise 门户联合时,应将流服务发布到 Root 文件夹。 |
文件夹 | 要素服务的名称,已处理的事件数据将作为新要素记录添加到其中。 |
流服务名称 | 要将已处理事件数据作为要素记录发送到的流服务的名称。 |
更新间隔(秒) | 通过将已处理事件记录作为要素记录发送到指定流服务,指定输出连接器将刷新其已处理事件记录缓存的时间间隔(以秒为单位)。默认为 0.1 秒,这意味着将缓存来自已处理事件记录的数据,并且缓存每秒刷新十次。 作为要素记录广播的事件记录应该相对简单,具有最小属性和简化的几何形状,以支持低延迟实时数据传播的流服务重点。 |
格式化的 JSON | 指定是否使用空格缩进和换行格式来修饰要素 JSON 字符串。此 JSON(有时称为 PJSON)通常仅在写入可在文本编辑器中查看其内容的系统文件时适用。默认为否。
|
强制实施唯一的 TrackID | 指定事件记录已标记 TRACK_ID 的字段是否应该用作唯一标识符来更新流服务广播的要素记录。默认为否。 注:目前,此属性在 GeoEvent Server 中尚未实现,并且应保持设置为其默认值否。请参阅以下限制。 |
限制
强制使用唯一 TrackID 属性旨在为订阅客户端应用程序提供信息,允许其行为从简单要素记录接收器更改为允许要素记录更新的接收器。如果属性设置为否,则订阅流服务广播的默认客户端会将每个要素记录视为新观测。总体行为会模仿添加要素工作流,其中会为每个要素记录广播显示新要素记录。将强制使用唯一 TrackID 属性设置为是可将行为更改为模拟更新要素工作流,其中最新要素记录的位置和属性可以在流服务广播新要素记录时更新。
实际上,如何设置强制使用唯一 TrackID 属性无关紧要。更改此属性值不会更改已发布的流服务的 JSON 规范。StreamLayer 的 ArcGIS Enterprise 和 ArcGIS Online web 地图实现目前使用服务 timeInfo 规范下发现的流服务指定 trackIdField 来控制流图层是否显示具有每个广播的要素记录的新要素记录或将之前接收的要素记录更新为广播的新要素记录。使用 ArcGIS API for JavaScript 实现的 web 制图应用程序可以选择模拟此行为或实现其自己的行为。
建议将强制使用唯一 TrackID 属性设置为默认值否,并且添加要素或更新要素行为可通过标记属性字段来控制,该字段的值可用于唯一标识传感器或可跟踪资产。
如果使用具有已标记 TRACK_ID 的属性字段的 GeoEvent 定义来发布流服务,则客户端应用程序可以从已发布服务的指定 trackIdField 中检索属性字段的名称,并在广播新要素记录时更新图层的缓存和/或要素显示。如果使用 GeoEvent 定义来发布流服务,该 GeoEvent 定义没有已标记 TRACK_ID 的属性字段,则发布的流服务在其规范中将不包含 trackIdField 值,并且客户端必须默认将广播的每个要素视为与任何特定传感器或可跟踪资产无关的唯一观测。