使用Fubu MVC.Server发送事件时的一个事件

时间:2014-01-20 15:38:36

标签: fubumvc

我们目前正在为我们正在为Windows Azure开发的应用实施通知功能。我们希望告知用户他们感兴趣的操作(例如文件的导入和导出等)。此通知特定于每个登录用户。

我们一直在使用ServerSentEvents,我们发现此列表背后有一个事件。因此,在第二个操作发生之前,我们不会开始看到通知,并且通知是针对第一个操作。在我们的开发环境中,这个问题总会发生,但在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();
        }
    }

我们的ServerEvent的实现:

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;
        }
    }

任何帮助,建议将不胜感激!

由于

斯科特

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案(在我的同事的帮助下)。

我们阅读有关SignalR并发现它在Azure中存在类似问题(后面有一个事件),建议的解决方案是将urlCompression的属性添加到Azure Web角色的Web.config中。

我添加了IIS7.5的默认设置:

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

这似乎解决了这个问题!我不知道为什么,所以如果有人可以提供帮助,请随意添加。

无论如何,我只是觉得我会分享更新。