2016-07-07 2 views
1

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

Вот мой следующий код:

<!DOCTYPE html> 
<html> 
<head> 
    <title>SignalR Simple Chat</title> 

</head> 
<body> 
    <button id="display">Display</button> 
    <button id="send">Send</button> 
    <input id="Name" type="Text"> 
    <input id="Content" type="Text"> 
    <!--Script references. --> 
    <!--Reference the jQuery library. --> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <!--Reference the SignalR library. --> 
    <script src="/Scripts/jquery.signalR-2.0.0.js"></script> 
    <!--Reference the autogenerated SignalR hub script. --> 
    <script src="/signalr/hubs"></script> 
    <!--Add script to update the page and send messages.--> 
    <script type="text/javascript"> 


     $(function() { 
      messageArr = []; 

      var chat = $.connection.chatHub; 
      chat.client.broadcastMessage = function (id, name, content) { 
       var message = { ID: id, Name: name, Content: content }; 
       messageArr.push(message); 
      }; 

      $('#display').click(function() { 
       window.alert(messageArr); 
      }); 

      $.connection.hub.start().done(function() { 
       $('#send').click(function() { 
        window.alert("Sent"); 
        chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content")); 

       }); 
      }); 
     }); 

    </script> 
</body> 
</html> 

C# Hub:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.AspNet.SignalR; 

namespace WebAPI 
{ 
    public class ChatHub : Hub 
    { 
     public void Send(int id, String name, String content) 
     { 
      Clients.All.broadcastMessage(id, name, content); 
     } 
    } 
} 

Owin Startup Класс:

using System; 
using System.Threading.Tasks; 
using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartup(typeof(WebAPI.Startup))] 

namespace WebAPI 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      // Any connection or hub wire up and configuration should go here 
      app.MapSignalR(); 
     } 
    } 
} 

Когда я запускаю это через Visual Studio 2013, я нажимаю send, и не появляется предупреждение, говорящее, что я нажал кнопку. Кроме того, когда я нажимаю кнопку дисплея позже, массив messageArr по-прежнему пуст. Что я могу изменить, чтобы это действительно работало?

ответ

0

Ну, я не знаю, как, но я, казалось, закрепилась мой код

<!DOCTYPE html> 
<html> 
<head> 
<title>SignalR Simple Chat</title> 

</head> 
<body> 
<button id="display"onclick="displayMessage()">Display</button> 
<button id="send">Send</button> 
<input id="Name" type="Text"> 
<input id="Content" type="Text"> 
<!--Script references. --> 
<!--Reference the jQuery library. --> 
<script src="Scripts/jquery-1.6.4.min.js"></script> 
<!--Reference the SignalR library. --> 
<script src="/Scripts/jquery.signalR-2.0.0.js"></script> 
<!--Reference the autogenerated SignalR hub script. --> 
<script src="/signalr/hubs"></script> 
<!--Add script to update the page and send messages.--> 
<script type="text/javascript"> 

    messageArr = []; 
    $(function() { 
     var chat = $.connection.chatHub; 
     chat.client.broadcastMessage = function (id, name, content) { 
      var message = { ID: id, Name: name, Content: content }; 
      messageArr.push(message); 
     }; 


     $.connection.hub.start().done(function() { 
      $('#send').click(function() { 
       chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content").value); 

      }); 
     }); 
    }); 
    function displayMessage() { 
     window.alert(messageArr); 
    } 

</script> 

Если кто-нибудь может объяснить мне, как это фиксированная моя проблема, которая могла бы быть полезной.

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