2016-05-27 2 views
2

Сначала я взял код ниже этого учебника: SignalR Getting Started Application, который создаст комнату для чата. Я немного очистил код html, чтобы получить только ту часть, которая мне понадобится. Я проверил чат по-прежнему работает:Создайте один файл js из всех файлов signalr js

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.4.min.js"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/signalr/jquery.signalR-2.0.0.js"></script> 
<script src="/signalr/hubs"></script> 

<script type="text/javascript"> 
$(function() { 
    var chat = $.connection.chatHub; 

    chat.client.broadcastMessage = function (name, message) { 
     console.log('name is: ' + name); 
     console.log('message is: ' + message); 
    }; 
    $.connection.hub.start().done(function() { 
     chat.server.send("khaled7", "message9"); 
    }); 
}); 
</script> 

Как вы можете есть 3 JavaScripts файлов и 1 скрипт блока:

Теперь мне нужно объединить все эти скрипты в один файл и отправить его на мой удаленный мобильных клиентов. Я все еще нахожусь на веб-странице, поэтому я начал присоединяться к файлу/сценарию сверху вниз. Присоединение к верхней 2 работала нормально, но как только пытаются добавить 3-ю (/ signalr/концентраторы), я получаю ошибку 404 в моей хромированной консоли:

http://localhost:52528/HubSample/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22chathub%22%7D%5D&clientProtocol=1.3&_=1464332439400

Это важно для меня присоединяйтесь к ним всем. Как я могу обойти эту ошибку !?

+0

Попробуйте обновить jquery до версии 2. Я использую jquery-2.2.2.min.js с jquery.signalR-2.0.3.min.js. Отлично работает –

+0

Возможно, мой вопрос был не слишком ясным. Я пошел и изменил название, чтобы он более подробно описал мою потребность. – user1019042

ответ

2

"/ signalr/hubs" не является физическим файлом, это dynamically generated JavaScript code.

SignalR создает код JavaScript для прокси на лету и служит его клиенту в ответ на «/ концентраторы/signalr» URL.

То, что вы хотите сделать, это создать physical file for the SignalR generated proxy, который можно добавить к вашему гуськом:

  1. Установите пакет Microsoft.AspNet.SignalR.Utils NuGet.
  2. Откройте командную строку и перейдите в папку инструментов, содержащую файл SignalR.exe. Папка инструментов находится по следующему адресу:
    [your solution folder]\packages\Microsoft.AspNet.SignalR.Utils.2.1.0\tools

  3. Введите следующую команду:
    signalr ghp /path:[path to the .dll that contains your Hub class]
    путь к .dll является обычно бен папку в папке проекта.

  4. Эта команда создает файл с именем server.js в той же папке, что и signalr.exe.

  5. Поместите файл server.js в соответствующую папку в своем проекте, переименуйте его как подходящую для своего приложения и добавьте ссылку на вместо ссылки «signalr/hubs».

Проблема заключается в том, что вы должны сделать это для каждого изменения концентраторов. Каждый. Один. время.

Смежные вопросы