2014-04-22 4 views
1

REST를 사용하여 브라우저에서 Azure Service Bus 주제 구독을 읽는 대신에 다른 방법을 찾으려고합니다. SignalR처럼 자연 스러울 것 같지만 그걸 해낸 사람을 찾을 수없는 것 같습니다. 저는 스케일 아웃에 대해 이야기하는 것이 아니라, 서비스 버스 기능 세트를 브라우저 앞뒤로 중계하는 SignalR 허브에 불과합니다. 내가 비동기를 시작할 것
addReceiver(string topic, string subscriptionID);
defineSubscription(string name, string subscriptionRule);

deleteSubscription(string name);
postMessageToTopic(string topic, string message);

addReceiver 구독에 수신과 같은 기능을 생각 해요. 서비스 버스에서 메시지를 사용할 수있게 될 때마다 함수가 JS 클라이언트에서 호출됩니다. 당신의 허브 코드를 직접 메시지를 보낼 수있는 서비스 버스 API를 호출하거나 직접 자바 스크립트/브라우저에서 서비스 버스 API를 사용할 수 있습니다에서Azure 서비스 버스 전송으로 SignalR을 어떻게 사용할 수 있습니까?

답변

2

다음은 올바른 방향으로 사람을 가리 키도록 일부 코드입니다.

namespace SBTester 
{ 
    public class SBHub : Hub 
    { 
     public void AddReceiver(string topic, string subscriptionName, string subscriptionFilter) 
     { 
      string messageData; 

      TopicConnector.Initialize( topic, 
             Context.ConnectionId + "." + subscriptionName, 
             subscriptionFilter); 

      // Initiate receive loop on Service Bus 
      TopicConnector.SBClient.OnMessage((receivedMessage) => 
      { 
       try 
       { 
        // Process the message 
        messageData = receivedMessage.GetBody<string>(); 
        Clients.Caller.onMessage(topic, messageData); 
       } 
       catch 
       { 
        // Handle any message processing specific exceptions here 
       } 
      }); 
     } 
     public void DefineSubscription(string topic, string subscriptionRule) 
     { 
      // Call Service Bus to create Subscription on the Specified topic 
     } 
     public void PostMessageToTopic(string topic, string message) 
     { 
      // Call Service Bus to send a message 
      Clients.All.addNewMessageToPage(topic, message); 
     } 

    } 
}