2012-07-02 135 views
0

我試圖實現的是一個控制檯應用程序,它能夠連接到使用SignalR的網站上託管的特定集線器並向其發送消息。signalr客戶端應用程序未連接到集線器

我有一個控制檯應用程序試圖連接到網站上的「聊天」中心。控制檯將嘗試連接,然後發送消息並關閉。

static void Main(string[] args) 
    { 
     var connection = new HubConnection("http://mysite:101/"); 
     IHubProxy myHub = connection.CreateProxy("Chat"); 


     connection.Start().ContinueWith(task => 
     { 

      if (task.IsFaulted) 
      { 
       Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException()); 
      } 
      else 
      { 

       Console.WriteLine("Client Connected"); 
      } 

     }).Wait(); 

     myHub.Invoke("Send", "Console App is Online!. ").ContinueWith(task => 
     { 
      if (task.IsFaulted) 
      { 
       Console.WriteLine("There was an error calling send: {0}", task.Exception.GetBaseException()); 
       Console.WriteLine(task.Status.ToString()); 
      } 
      else 
      { 
       Console.WriteLine("Send Complete."); 
      } 
     }).Wait(); 

一切正常本地,(我想這將是相同的應用程序域)。

我的ASP樞紐正是基於聊天例如在維基https://github.com/SignalR/SignalR/wiki/

using SignalR.Hosting.AspNet; 
using System.Threading.Tasks; 

    namespace HubSignalrTest 
    { 

    //[HubName("Hubtest")] 
    public class Chat : Hub , IDisconnect , IConnected 
    { 

    public void Send(string message) 
    { 
     // Call the addMessage method on all clients 
     Clients.addMessage(message); 
    } 

Jscript與示例中的幾乎相同。

<script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script> 
<script type="text/javascript" src="Scripts/jquery.signalR-0.5.1.js"></script> 

<script src='<%= ResolveClientUrl("~/signalr/hubs") %>'> type="text/javascript"> </script> 
<script type="text/javascript"> 

    jQuery.support.cors = true; 

    $(function() { 
     // Proxy created on the fly 
     var chat = $.connection.chat; 

     // Declare a function on the chat hub so the server can invoke it 
     chat.addMessage = function (message) { 
      $('#messages').append('<li>' + message + '</li>'); 
     }; 



     $("#broadcast").click(function() { 
      // Call the chat method on the server 
      chat.send($('#msg').val()) 
       .done(function() { 
        console.log('Success!'); 
       }) 
       .fail(function (e) { 
        console.warn(e); 
       }); 
     }); 

     // Start the connection 
     $.connection.hub.start(); 
    }); 

我嘗試設置jQuery.support.cors = TRUE;省略或添加集線器名稱,並且我調查了在同一臺服務器上使用正確設置運行控制檯應用程序(仍未連接到集線器)並且似乎不是防火牆問題。有沒有人有類似的項目運氣,或知道我做錯了什麼?我真的很想實現這個基本的溝通,以擴展SignalR帶來的很多想法。

回答

相關問題