The Receive RSS input connector can be used to retrieve data from a Really Simple Syndication (RSS), a GeoRSS-Simple, or a GeoRSS GML feed. No official standard for RSS exists, but you can read more about typical implementations from w3schools.com, georss.org, and ROME, the open source framework ArcGIS GeoEvent Server uses to parse RSS and Atom feeds.
Usage notes
Keep the following in mind when using the Receive RSS input connector:
- This input connector pairs the RSS inbound adapter and the HTTP inbound transport.
- Use this connector to establish an HTTP client connection to an RSS or Atom feed’s REST endpoint and periodically poll to retrieve data.
- An RSS and Atom feed’s content is generally organized as a collection of items grouped beneath a channel as illustrated above.
- Responses from the RSS and Atom feed are parsed to extract data from individual item records; each item is processed as a separate event record.
- The HTTP method the connector uses to poll for data depends on the type of requests supported by the RSS or Atom feed.
- An HTTP/GET is typically used to request data; a client connection is established each time the connector requests data from a feed.
- Query parameters can be used to help specify data of interest in the Parameters parameter.
- Specifying query parameters as part of an HTTP/GET request can improve performance by narrowing the number of items returned.
- The name and values of any specified query parameter depend on what requests are supported by the external RSS or Atom feed’s API.
- The Receive New Data Only parameter is used to request a feed return only previously unobserved or newly updated data. This capability depends on the RSS or Atom feed correctly incorporating Last-Modified into the header of its response to an HTTP request. If the response header does not indicate a date and time the content was last updated, GeoEvent Server will assume that data in the response represents new or recently updated data. You can read more about the use of Last-Modified in response headers in the RFC 7232 HTTP specification.
- The connector creates and maintains a GeoEvent Definition whose structure is updated to reflect the RSS or Atom feed’s content. The name of the GeoEvent Definition is adapted from the title in the feed’s content. GeoEvent Server administrators must not configure multiple Receive RSS inputs whose content is different but whose title is essentially the same. Every time an input polls for data and receives a response, it will likely discover the GeoEvent Definition it was using was changed by the other configured input and it will create a new GeoEvent Definition to accommodate its data polls.
Note:
This contention between Receive RSS inputs with similar titles is a known limitation.
Parameters
The following are the parameters for the Receive RSS input connector:
Parameter | Description |
---|---|
Name | A descriptive name for the input connector used for reference in GeoEvent Manager. |
URL | The base URL of the RSS feed you want to poll for data. Some examples include the following: |
Frequency (in seconds) | The interval (in seconds) an RSS data feed will be polled for data. The default is 10 (one poll request every 10 seconds). |
HTTP Method | The HTTP request method to use when GeoEvent Server polls the external server providing the data feed. The default is to use an HTTP/GET request.
|
Parameters | Specifies a query parameter, or multiple query parameters, to append to the base URL. Query parameters are specific to each RSS feed and are not supported by all feeds. When supported by an RSS feed, query parameters help specify data of interest. Query parameters are normally incorporated into an RSS feed’s URL. This parameter has no default value. |
Acceptable MIME Types (Client Mode) (Conditional) | Specifies the MIME types this connector will accept when receiving a response to its query to a data feed. The external web service’s response specifies the actual MIME types for any data sent to GeoEvent Server. This connector understands the following MIME types, which are the default for this parameter: text/xml,application/rss+xml,application/atom+xml,application/xml,text/plain For more information on official MIME types, see Internet Assigned Numbers Authority (IANA). For more information on the MIME types not used by ArcGIS Server, see MIME types not used by ArcGIS Server. This parameter is shown when the HTTP Method is set to Get and is hidden when set to either Post or Put. |
Receive New Data Only | Specifies whether the adapter will look for a Last-Modified value in the data feed response’s header and will attempt to use this value to avoid processing data already been received and not updated. The parameter’s name can be misleading. The transport will always receive whatever data a feed includes in its response to the connector’s query. When Receive New Data Only is specified, however, the transport will cache the date/time of its last request and will only relay data it receives to the adapter if the response from the data feed includes a Last-Modified value that is greater-than the transport’s cached value. Specifying a Last-Modified value is optional. In practice, not many data feeds include it in their responses. The default for this parameter is Yes, but if a Last-Modified value is not found, the parameter is ignored as the date/time needed to determine whether data in the response is new or updated is not available.
For more information about the use of Last-Modified in response headers, see the RFC 7232 HTTP specification. |
Use URL Proxy | Specifies whether GeoEvent Server will use a URL proxy when making its HTTP requests. The default is No.
|
URL Proxy (Conditional) | The URL proxy to use when making an HTTP request. The parameter is shown when the Use URL Proxy is set to Yes and is hidden when set to No. |
HTTP Timeout (in seconds) | Specifies the maximum time (in seconds) the input connector will wait for a response from the server hosting the RSS feed. The value must be an integer between 1 and 2147483. The default value is 30 (the HTTP request will timeout after 30 seconds if no response is received). |