Receiving AGS Stream events in GEE

593
2
03-13-2017 07:00 AM
Status: Open
GeoDeskWag-Univ
New Contributor II

Up to now I have not been able to define an AGS StreamServive as an input to a GeoEvent Input Connector.
With this functionality it would be possible to receive an output stream of geo-events at another server as an input stream.
Smart "chaining" of servers will be possible then.
I think the current existing two "subscribe" input sockets are missing the specific "subscribe" protocol,

because the input counts remain 0.


As a start, receiving a stream of points would be great.
But greater would be the full functionality as found in the JavaScript StreamLayer ( https://developers.arcgis.com/javascript/3/jsapi/streamlayer-amd.html )
like filtering by bounding box, filtering by query, selecting fields, all types of features.

Thanks, Roland

2 Comments
AdamRepsher

Hi GeoDesk Wag-Univ‌ - Roland,

If you are just trying to get events from one GeoEvent‌ Server to another GeoEvent Server instance, you could just use inbound and outbound connectors already provided.  I use both the Text to TCP Socket and JSON inbound and outbound to accomplish this - and at times to reformat and provide a feed to another input on the same server.  

I am back on v10.4.1, so things may have changed, but for an example, a Text to TCP in and out:  You may need to copy and modify the Receive and Publish Text from/to a TCP Socket connectors.  I do this to eliminate the need to restart the receive connector if the feed pauses or stops for any reason.

Copy the Receive Text from a TCP Socket connector:

It will open a new copy of the connector:

As shown above, you need to expose the "Mode", "Host (Client Mode)" and "Connection Timeout (Client Mode)" out of Hidden Properties and into the Shown Properties box with the left arrow button.  You can then define Client Mode and define the host name and port providing the data.

On the Outgoing side, you copy and modify the Publish (output) version of this connector, move the same properties, then open and define "Server" Mode and the port you want to use.

That should give you transfer of data from one GeoEvent Server to the other.

All of the other functions that you speak of are available to you when you create a service. (filtering by bounding box, filtering by query, selecting fields)

--Adam

geoevent‌ geoevent server‌ connectors‌ outbound‌ inbound‌ real-time‌

GeoDeskWag-Univ

Hello Adam,

Many thanks for your extensive answer and description !

At this moment I cannot reproduce this recipe because of a problem with our GeoEvent-Manager.

What you describe is chaining GeoEvent-services communicating texts by TCP-sockets.

This needs management privileges on both OUT and IN services.

My intention was to have an input-connector for GE receiving events from an ArcGIS Service by WebSocket communication. So GE acts just as one of the clients connected to a (public) service.

Thanks again, Roland