2016-07-07 7 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#ハブ:

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起動クラス:

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を介してこれを実行すると、私はクリックしてください。ここ

は私の次のコードであります私はボタンを押したことを知らせるアラートは表示されません。また、後で表示ボタンをクリックすると、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> 

を固定しているように見えました。

関連する問題