The Spine proxying layer that sits in front of the Neohabitat application is configured to close idle HTTP sessions after 50 seconds unless upgraded to an EventSource or WebSocket connection. As these upgrade headers are sent by the PushServer upon the first event message to the client, a 50 second window can elapse before they're sent.
The solution is to add an event which is fired upon the first connection, CONNECTED, which will correctly set the needed upgrade headers. Furthermore, I've added retry code to the frontend to support reconnection during byzantine connection failure scenarios (WiFi changes, etc.)
Finally, I've added support for the PushServer to the Vagrant build code to support Windows developers.
The Spine proxying layer that sits in front of the Neohabitat application is configured to close idle HTTP sessions after 50 seconds unless upgraded to an EventSource or WebSocket connection. As these upgrade headers are sent by the PushServer upon the first event message to the client, a 50 second window can elapse before they're sent.
The solution is to add an event which is fired upon the first connection, CONNECTED, which will correctly set the needed upgrade headers. Furthermore, I've added retry code to the frontend to support reconnection during byzantine connection failure scenarios (WiFi changes, etc.)
Finally, I've added support for the PushServer to the Vagrant build code to support Windows developers.