SignalR 2.2 Fallback transports exhausted - connection unreliable
<p><strong>Edit</strong> Actually, this is not fixed at all, it just happened to work immediately after the change. I am so lost here.</p>

<p>I have a website that is a social media aggregator, it collects media from different social websites and pushes it over signalr to connected users.</p>

<p>This works beautifully for me and most other users, but one of the biggest clients we have is having issues with a reliable connection.</p>

<p>The following link is almost the same issue, and the suggested fix here also works for me: <a href="https://stackoverflow.com/questions/19848605/signalr-2-long-polling-protocol-request-actually-times-out-when-not-ran-locall">SignalR 2 long polling &quot;protocol&quot; request times out when not ran locally</a></p>

<p>My question is: Why does this work for everyone else but this client? I am assuming it is something to do with their network configuration/proxies/vpn's and the like.</p>

<p>I increased the timeout on the client side to 10 seconds and on the server side to 10 seconds, so if I understand this correctly this is now a 20 second timeout.</p>

<p>Can someone help explain what may be causing what I was seeing? Their internet speeds are not slow, the site is responsive, could it be as simple as their network configuration and latency? or some kind of proxy that would be slowing the connection down enough to cause issues with the default settings?</p>

<p>I am looking to understand why this fix seems to resolves the issue, I am reluctant to think is now solved as it seems a odd to me.</p>

<p>Logs before I made this change looked like the following:</p>

<pre><code>SignalR: Client subscribed to hub 'myhub'.
SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.5&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint 'signalr/connect?transport=serverSentEvents&amp;clie…3gsDmCzfkA%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&amp;tid=7'.
SignalR: EventSource connected.
SignalR: serverSentEvents transport connected. Initiating start request.
SignalR: serverSentEvents transport failed during the start request. Stopping the connection.
SignalR: Stopping connection.
SignalR: EventSource calling close().
SignalR: Fired ajax abort async = true.
SignalR: The start request aborted because connection.stop() was called.
SignalR: Client subscribed to hub 'myhub'.
SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.5&amp;connectionToken=ubEjncDXPj0%2BF6YsbdPGaBRMoRKpb6b2rmP96H8I8dzoNNrQuG3hzvmBmcvTeocMXMKphG7WAYx%2B5CXWZqHTQzQ0Ix4Q0oY8WSGBbrK0Gg642QUJ4H2CP%2F%2F%2BZeWf6s9gpW6VsbAmlu453gsDmCzfkA%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint '/signalr/connect?transport=serverSentEvents&amp;clie…jsKYjxsjjQ%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&amp;tid=2'.
SignalR: EventSource connected.
SignalR: serverSentEvents transport connected. Initiating start request.
SignalR: serverSentEvents transport failed during the start request. Stopping the connection.
SignalR: Stopping connection.
SignalR: EventSource calling close().
SignalR: Fired ajax abort async = true.
SignalR: The start request aborted because connection.stop() was called.
SignalR: Client subscribed to hub 'myhub'.
SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.5&amp;connectionToken=gOOVxYvgb3S%2Fd2lHGesc%2BqQmm26O5E0sA72Sctx3HXaKmZniWL2LokTGYF7QTpGEInG2%2B%2FiscmTx%2BfA0JWbMB6oJkgWEJ0zd2zlJdvy8BpZsDaJXIBK3pIEZxognlA6qsOECLf5IEY%2BrjsKYjxsjjQ%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint '/signalr/connect?transport=serverSentEvents&amp;clie…QWnHGdfTg%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&amp;tid=10'.
SignalR: serverSentEvents transport timed out when trying to connect.
SignalR: EventSource calling close().
SignalR: serverSentEvents transport failed to connect. Attempting to fall back.
SignalR: foreverFrame transport starting.
SignalR: Forever Frame is not supported by SignalR on browsers with SSE support.
SignalR: foreverFrame transport failed to connect. Attempting to fall back.
SignalR: longPolling transport starting.
SignalR: Opening long polling request to '/signalr/connect?transport=longPolling&amp;clientPro…YXqliyLQWnHGdfTg%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.
SignalR: longPolling transport timed out when trying to connect.
SignalR: Aborted xhr request.
SignalR: longPolling transport failed to connect. Attempting to fall back.
SignalR: Fallback transports exhausted.
SignalR: Stopping connection.
SignalR: Fired ajax abort async = true.
</code></pre>

<p>And after I made the change:</p>

<pre><code>SignalR: Client subscribed to hub 'myhub'.
SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.5&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.
SignalR: serverSentEvents transport starting.
SignalR: Attempting to connect to SSE endpoint '/signalr/connect?transport=serverSentEvents&amp;clie…Ck0cV1%2Fg%3D%3D&amp;connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&amp;tid=1'.
SignalR: EventSource connected.
SignalR: serverSentEvents transport connected. Initiating start request.
SignalR: The start request succeeded. Transitioning to the connected state.
SignalR: Now monitoring keep alive with a warning timeout of 6666.666666666666, keep alive timeout of 10000 and disconnecting timeout of 15000
</code></pre>