2014-01-20 1 views
0

우리는 현재 Windows Azure 용으로 개발중인 앱의 알림 기능을 구현하고 있습니다. Google은 사용자가 원하는 작업 (예 : 파일 가져 오기 및 내보내기 등)을 사용자에게 알리고 자합니다. 이 알림은 로그인 한 각 사용자에게 해당됩니다.FubuMVC.ServerSentEvents를 사용할 때 하나의 이벤트가 발생했습니다.

우리는 ServerSentEvents를 사용하고 있으며이 목록은 하나의 이벤트임을 알게되었습니다. 따라서 두 번째 작업이 수행되고 그 알림이 첫 번째 작업에 대한 알림이 될 때까지는 알림이 표시되지 않습니다. dev 환경에서는이 문제가 항상 발생하지만 Azure에서는 예상대로 작동하는 것처럼 보입니다 (때때로 !!!)

Event Queue 및 Channel Initialiser의 기본 구현을 사용하고 있습니다. 우리는 주제와 서브 레벤트를 전달하는 EventPublisher.WriteTo 메소드를 통해 발행합니다. 우리 ServerEvent의

public class UserNotificationsTopic : Topic 
    { 
     [RouteInput] 
     public Guid UserId { get; set; } 

     public override bool Equals(object obj) 
     { 
      return Equals(obj as UserNotificationsTopic); 
     } 

     public bool Equals(UserNotificationsTopic other) 
     { 
      if (ReferenceEquals(null, other)) return false; 

      return ReferenceEquals(this, other) || 
       UserId.Equals(other.UserId); 
     } 

     public override int GetHashCode() 
     { 
      return UserId.GetHashCode(); 
     } 
    } 

구현 :

public class UserNotificationServerEvent : IServerEvent 
    { 
     public string Id { get; private set; } 

     public string Event { get; private set; } 

     public int? Retry { get; set; } 

     public object Data { get; private set; } 

     public UserNotificationServerEvent(string id, string @event, object data) 
     { 
      this.Id = id; 
      this.Event = @event; 
      this.Data = data; 
     } 
    } 

어떤 도움, 제안 평가 될 것입니다

여기에 주제의 우리의 구현입니다!

감사

스콧

답변

0

나는 (내 동료의 지원이 많은) 솔루션을 발견했다 생각합니다.

SignalR에 대해 읽었을 때 비슷한 문제가있는 Azure (한 이벤트 뒤에 있음)가 발견되면 Azure 웹 역할의 Web.config에 urlCompression의 속성을 추가하는 것이 좋습니다.

<urlCompression doStaticCompression="true" doDynamicCompression="false"/> 

그리고이 문제를 해결 한 것으로 나타납니다

나는 IIS7.5의 기본 인 설정을 추가! 나는 왜 그런지 아직 확신하지 못한다. 누군가가 그걸 도울 수 있다면 자유롭게 추가하자.

어쨌든 업데이트를 공유하고 싶습니다.