$ .connection. (имя хаба) не определено. Сигнализатор / концентратор 501 (не реализовано)

У меня есть приложение MVC 4, у которого есть страница регистрации.

Код для концентратора следующий: -

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SignalR.Hubs;

[HubName("messageHub")]
public class MessageHub : Hub
{
    /// <summary>
    /// Broadcast the message to all clients
    /// </summary>
    /// <param name="message">message to be broadcasted</param>
    public void Broadcast(string message, string messagetype, string messagetitle)
    {
        this.Clients.showMessage(message, messagetype, messagetitle);
    }
    public void Getsubscription()
    {

    }
}

Точно так же код JS-концентратора: -

<script type="text/javascript" src="@Url.Content("~/Scripts/json2.js")"></script>
<script src= "@Url.Content("~/Scripts/jquery.signalR-0.5.2.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<h2>Index</h2>
<script type="text/javascript">
    $(document).ready(function () {
        //Initialize hub
        var hub = $.connection.messageHub;

        // hub.start();
        $.connection.hub.start();
        //Append event to Button
        //hub.broadcast("c","b","a");

    });

</script>

Теперь после запуска он получает $ .connection.messageHub как undefined

Снимок экрана в режиме отладки

во-вторых, моя сеть Chrome показывает; - Network -Chrome

В-третьих, при нажатии на инициатор для signalr / hub я получаю сообщение об ошибке: - введите описание изображения здесь

Я попытался изменить URL-адреса для скриптов, также запущенных как IIS, но не смог заставить его работать. Если я сохраню свои сценарии в .cshtml (Просмотр) и изменю → использовать локальный веб-сервер IIS, он будет работать нормально Любая помощь.!


person Shubh    schedule 03.08.2012    source источник
comment
Я полагаю, вы также включаете базовую библиотеку jQuery? А также определяется ли $ .connection?   -  person Anders Arpi    schedule 03.08.2012
comment
Если вы перейдете к этому URL-адресу вручную в браузере, что он покажет?   -  person davidfowl    schedule 03.08.2012
comment
@ AndersHolmström Я вставил ответ о подключении на свой 1-й снимок экрана. Просто хотел обновить это, если я сохраню свои скрипты в .cshtml (View) и изменю использование локального веб-сервера IIS, он будет работать нормально!   -  person Shubh    schedule 03.08.2012


Ответы (2)


@ Scripts.Render (~ / bundles / modernizr)

@ Scripts.Render (~ / bundles / jquery)

прокомментировал этот раздел в разделе макета и работал у меня.

person Shekhar    schedule 19.08.2012
comment
значит сигнальщик еще не совместим со связками? - person daniel; 19.01.2013
comment
Пакеты загружаются во время компиляции, но /signalr/hubs создается во время выполнения. Я думаю, поэтому использование пакета в этом случае не работает. - person Amir Oveisi; 20.02.2014

Я обнаружил, что добавление ссылки на /signalr/hubs в конфигурации пакета не работает, потому что оно создается во время выполнения, а объединение происходит во время компиляции.
поэтому я сделал это:
1- создал такой раздел в каждом представлении мне нужна ссылка на signalr/hubs:

    @section SignalRScripts{
    <script src="/signalr/hubs"></script>
    }  

2- в моем файле макета после рендеринга всех других скриптов, отрисовал этот раздел:

    @Scripts.Render("~/js")  
    @RenderSection("SignalRScripts", required: false)  
    @RenderSection("Scripts", required: false) 

тогда все работало нормально.

person Amir Oveisi    schedule 20.02.2014