I configured signalr diagnostics to help track down messages from client to server that were not reaching the server... I uncovered the following exception detail which is pretty much what I suspected was happening.
SignalR.Transports.WebSocketTransport Error: 0 : OnError(08af5ad0-d63d-42a3-8e00-3c109da3be6b, System.InvalidOperationException: Buffer length exceeded
at Microsoft.AspNet.SignalR.Infrastructure.ByteBuffer.Append(Byte[] segment)
at Microsoft.AspNet.SignalR.WebSockets.WebSocketMessageReader.<ReadMessageAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.<ProcessWebSocketRequestAsync>d__8.MoveNext())
From the packages.config; this is the SignalR version details
<package id="Microsoft.AspNet.SignalR" version="1.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.Core" version="1.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.JS" version="1.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.Owin" version="1.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="1.1.2" targetFramework="net45" />
I am using SignalR as a javascript library test framework. SignalR allows the server to invoke client side js lib functions which involve invoking other webservices or establishing connections to other websockets and processing async feeds.
I have encountered one particular js lib function which invokes a json webservice and the response is sufficiently large to exceed the signalR internal buffers.
So, what is the maximum buffer length? Is it configurable?
If not; does signalR support message chunking? Or will I need to implement a solution of my own?