SignalR cannot read property client of undefined

I fixed that problem by changing my js code from: var myHub = $.connection.SentimentsHub; to var myHub = $.connection.sentimentsHub;

So if you have some hub with class name TestHub you must use testHub(first letter is lowercase) name in js


For those who tried to add the generated proxy file path in the bundle.

Do not include the "~/signalr/hubs" in your BundleConfig.cs.

You can have the JQuery.SignalR in the bundle:

bundles.Add(new ScriptBundle("~/bundles/signalr").Include(
                  "~/Scripts/jquery.signalR-{version}.js"));

But you will need to add "/signalr/hubs" it in your view:

@section Scripts {
    @Scripts.Render("~/bundles/signalr")
    @Scripts.Render("/signalr/hubs")
}

I hope this helps.


I had the same error message and resolved the issue by fixing a typo I had in the [HubName] attribute on the hub class - it was not exactly matching the property in the client-side javascript.

C# hub class:

[HubName("gameHub")]
public class GameHub : Hub
{

client-side javascript:

var foo = $.connection.gameHub;

"gameHub" must be the same.

hth


For ASP.Net MVC folks:

Check your _Layout.cshtml: If you are calling the jquery bundle after the @RenderBody(), you will get this error.

Resoultion: Just move the @Scripts.Render("~/bundles/jquery") to the head section or write all signalr scripts in the scripts "section"