2017-08-29 5 views
0

Je tente d'établir une connexion de domaine coss. Dans mon client JavaScript, je ne vois aucun problème avec la connexion, mais si j'envoie un signal du concentrateur, la méthode javascript ne sera pas touchée. Dans la console, aucune erreur n'est affichée. La variable JavaScript "chat" est définie. J'ai regardé des tutoriels sur internet et j'ai surtout copié le code mais ça ne marche pas.Hôte d'application de console inter-domaine SignalR avec le problème du client JavaScript

hôte Application console:

class Program 
    { 
     static void Main(string[] args) 
     { 
      string url = "http://localhost:43253/"; 
      using (WebApp.Start(url)) 
      { 
       Console.WriteLine($"Server running on {url}"); 
       Console.ReadKey(); 
       MyHub hub = new MyHub(); 
       hub.Send("test", "test"); 
       Console.ReadKey(); 
      } 
     } 
    } 

    class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.Map("/signalr", map => 
      { 
       // Setup the cors middleware to run before SignalR. 
       // By default this will allow all origins. You can 
       // configure the set of origins and/or http verbs by 
       // providing a cors options with a different policy. 
       map.UseCors(CorsOptions.AllowAll); 

       var hubConfiguration = new HubConfiguration 
       { 

       }; 

       // Run the SignalR pipeline. We're not using MapSignalR 
       // since this branch is already runs under the "/signalr" 
       // path. 
       map.RunSignalR(hubConfiguration); 
      }); 
     } 
    } 

    public class MyHub : Hub 
    { 
     public override Task OnConnected() 
     { 
      Console.WriteLine("connected"); 
      return base.OnConnected(); 
     } 

     public void Send(string name, string message) 
     { 
      var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
      context.Clients.All.addMessage(name, message); 
     } 
    } 

client JavaScript:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 

</head> 
<body> 
    <div id="image"> 
    </div> 
    <script src="~/Scripts/jquery-1.6.4.min.js"></script> 
    <script src="~/Scripts/jquery.signalR-2.2.2.min.js"></script> 
    <script src="http://localhost:43253/signalr/hubs"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $.connection.hub.url = "http://localhost:43253/signalr"; 
      var chat = $.connection.myHub; 

      chat.client.addMessage = function (name, message) { 
       console.log(name + message); 
      } 
     }); 
    </script> 
</body> 
</html> 

Répondre

0

Je l'ai fixé. Le problème était que j'ai oublié de démarrer la connexion. Juste ajouté: $ .connection.hub.start(); à la fin du client JavaScript