Hello everyone!
Our team already has some experience with GeoEvent Manager. Currently, we are facing a problem with using the stream service. When setting up the service, we refer to the tutorial 'Stream Services in GeoEvent Server Tutorial'.
I use the Send Features to a Stream Service output. It's helping us to publish the stream service correctly and successfully. There is nothing wrong with that.
The problem occurs when I try to subscribe to my service via REST endpoint (Subscribing to receive event data as an HTML client). When I click the 'subscribe' button, the text 'You have unsubscribed' is always returned.
Also, when the GeoEvent service is enabled, I see that objects are passed to the output. But I don't see any objects of this service (ArcGIS Pro, Map Viewer etc.).
We repeated this option in different browsers (Google Chrome, Mozzila Firefox, Microsoft Edge). The same error is displayed everywhere.
Here's the error text in the browser console:
'WebSocket connection to 'wss://<...>:6143/arcgis/ws/services/<...>/StreamServer/subscribe?token=<...>' failed: '
The 'netowrk' tab of the browser:
NS_ERROR_WEBSOCKET_CONNECTION_REFUESED
500 Server Error
We have read all the blog articles and tried to understand and find our own solution to configure the 'WebSocketContextURL' parameter on ArcGIS Server. But any of our changes do not work.
We also examined the GeoEvent Manager log. I will show you the sequence of responses to the place that probably shows the true error:
org.eclipse.jetty.server.session sessionHandler...
org.eclipse.jetty.servlet.ServletHandler servlet .... cxf-osgi-transport-servlet==org.apache.cxf.transport.servlet.CXFNonSpringServlet
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext Handling request for ...
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler handling request org.ops4j.pax.web.service.jetty.internal.HttpServiceRequestWrapper...
org.eclipse.jetty.servlet.ServletHandler chain=null
.esri.ges.rest.service.interceptor.AuthorizationInterceptor Authorization successful for ....
org.eclipse.jetty.io.ssl.SslConnection >fill SslConnection@5f080142::SocketChannelEndPoint
org.eclipse.jetty.io.ssl.SslConnection fill NOT_HANDSHAKING
So we see that there is no handshaking. But we cannot understand why.
We also refer to the support solution suggestions.
We installed an unsigned certificate on ArcGIS Server. This did not help.
We changed the Server Security Configuration to 'HTTP and HTTPS' (we cannot set the type to HTTP due to security requirements). This also did not change the situation.
The versions of our ArcGIS Server and Geoevent Server are 10.9.1.
We can also say that all this does not work in the AWS environment either.
Currently, we are using the data from the community article to test the stream service. We are doing this to make sure that the problem is not with our data.
Please, can anyone help? Any advice would be appreciated, for example:
- Is there any mandatory WebSocket configuration on ArcGIS Server, otherwise why it doesn't work in our case?
- In this case, how can I correctly diagnose ArcGIS Server/GeoEvent server to find the cause of the problem?
- Are there any topics that we should dismiss as the cause of the problem?
- In which direction should we move? ArcGIS Server, networking, etc.
I'll also attach a screenshot from my browser if it helps.
We are administrators of this system ourselves, so we have nowhere else to turn 🙂
Thank you for any help!