2015-12-30 3 views
2

У меня есть установка небольшой проект состоит из консольного приложения (моих сообщений Hub) и веб-приложения (мои сообщений приемника). Идея состоит в том, что приложение консоли прослушивает очередь RabbitMQ и каждый раз, когда сообщение принимается, оно транслирует сообщение всем подключенным Клиентам SignalR.SignalR веб-приложения получают сообщения из консоли Hub

Я инициализировать консоль приложения таким образом:

// start Mass Transit Bus 
var busControl = BuildBus(); 
busControl.Start(); 

// Start SignalR 
string url = "http://localhost:9090"; 
using (WebApp.Start(url)) 
{ 
    Console.WriteLine("SignalR Server running on {0}", url); 
    Console.ReadLine(); 
} 

Тогда у меня есть класс запуска и мой класс Концентратор следующим образом:

class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     app.UseCors(CorsOptions.AllowAll); 
     app.MapSignalR(); 
    } 
} 
public class MyHub : Hub 
{ 
    public void Send(string name, string message) 
    { 
     Clients.All.addMessage(name, message); 
    } 
} 

Теперь, когда я запутаться.

Вопрос 1 Я хочу от своего веб-приложения получать сообщения, поэтому я инициализирую прокси-сервер, а затем?

<script type="text/javascript"> 
     $(function() { 
     //Set the hubs URL for the connection 
      $.connection.hub.url = "http://localhost:9090/signalr"; 

      // Declare a proxy to reference the hub. 
      var chat = $.connection.myHub; 

      // Declare a Message handler 

     }); 
</script> 

Вопрос 2 Из консольного приложения, как я вещать сообщение для всех клиентов?

ответ

2

Ответ 1 Вы должны определить клиентские методы как chat.client.someMethod = function(someParams). В вашем случае этот метод клиента - chat.client.addMessage = function (name, message) {}.

Ответ 2 Если вы хотите транслировать какое-либо сообщение без подключения к вашему концентратору из приложения .NET, вы можете сделать это следующим образом: GlobalHost.ConnectionManager.GetHubContext<MyHub>().Clients.All.addMessage(/*method params*/).

+0

Именно то, что я искал. Я не мог найти его в документации, спасибо – Raffaeu

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