Ошибка объекта неопределенная в var chat = $ .connection.chat;при использовании SignalR - PullRequest
9 голосов
/ 18 сентября 2011

Я попытался установить библиотеку SignalR для создания примера приложения чата.Я считаю, что выполнил все шаги, указанные в документации.Я не уверен, что может быть причиной сбоя.

Это сбой при создании объекта чата.Я использую VS2010, и я загрузил SignalR с помощью утилиты загрузки пакетов VS2010.

У кого-нибудь возникла проблема с этим?

Спасибо, Самир


Спасибо Hurricanepkt за помощьменя.

Да, я получил все signalR через nuget, используя диалоговое окно «Добавить пакет библиотеки» VS2010.Я получаю объект неопределенной ошибки, в var chat = $ .connection.chat;

Я только заставил его работать, но это был проект веб-приложения ASP.NET.Я не мог заставить его работать с проектом сайта ASP.NET.Я не знаю почему.

Я верю в это из-за динамического создания библиотеки DLL в проекте веб-сайта и фиксированной библиотеки DLL в проекте веб-приложения ASP.NET.

Сталкивались ли вы с такой проблемой?

Ответы [ 4 ]

4 голосов
/ 30 апреля 2012

Как называется ваш хаб? Если вы изменили его на что-то, кроме «Чат», то это не сработает. У меня была та же проблема, потому что я изменил свой на:

    public class ChatHub : Hub
    {
        public void Send(string message)
        {
            Clients.addMessage(message);
        }
    }

В Javascript это:

var chat = $.connection.chat;

необходимо изменить на

var chat = $.connection.chatHub;
1 голос
/ 20 июля 2012

Я был расстроен из-за той же проблемы. Это работает в веб-проекте, но на веб-сайте это не так. Поэтому я проверил файл сценария, который создается динамически.

Left: Web Project - Right: Web Site Слева: веб-проект - справа: веб-сайт (http://i.imgur.com/X1XrT.jpg)

Как вы можете видеть на веб-сайте, он не создает объект "чат", поэтому он говорит неопределенный. Прочитав ваши предложения о создании динамических DLL, я поместил свой код в файл в отдельный файл .cs и поместил этот файл cs в папку App_Code. Я попробовал и бац, это сработало. Проверен файл динамического скрипта:

web site project (http://i.imgur.com/CSInO.jpg)

Я не знаю много о технической проблеме здесь, но решение проблемы помещает ваш код в отдельный файл Class, который находится в папке App_Code. Хорошего дня

0 голосов
/ 13 декабря 2013

Что ж, я подозреваю, что мы следовали той же документации / учебнику - учебнику для signalR 1.1.3 с использованием веб-приложения ASP.net (последняя версия signalR для .NET Framework 4 - более высокие версии signalR не поддерживаются).

Если вы похожи на меня, вы также должны без проблем запустить signalR в веб-приложении, а затем приступить к реализации того же для веб-сайта.В моем случае все дело в ссылках на мои файлы JavaScript, благодаря Ларсу Хеппнеру.

Эти строки

<script src="/Scripts/jquery-1.6.4.min.js" ></script>
<script src="/Scripts/jquery.signalR-1.1.3.js"></script>
<script src="/signalr/hubs"></script>

должны быть только

<script src="Scripts/jquery-1.6.4.min.js" ></script>
<script src="Scripts/jquery.signalR-1.1.3.js"></script>
<script src="signalr/hubs"></script>
0 голосов
/ 18 сентября 2011

Читая вашу проблему, я столкнулся с этой же проблемой при использовании ее в приложении MVC3.

Можете ли вы опубликовать ссылку на сценарий? Я почти могу поспорить, что вы используете что-то вроде этого, статическую строку местоположения:

"../script/signalr.min.js"

Когда вы должны использовать (или эквивалент относительных путей WebForms):

<!-- Used for SignalR -->
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalR.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>

Сегодня я столкнулся с той же самой проблемой, и сам Дэвид Фаулер помог мне.

В любом случае, прочитайте мой пост в блоге и следуйте за ним к букве T, и у вас будет рабочая версия с MVC3.

http://sergiotapia.com/2011/09/signalr-with-mvc3-chat-app-build-asynchronous-real-time-persistant-connection-websites/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...