监视SignalR消息大小

时间:2018-08-15 20:26:35

标签: c# asp.net-mvc signalr signalr-hub

我知道当消息的大小超过32K时,SignalR可能存在性能问题,我想做的是扩展SignalR的常规过程,以检查消息的大小并记录消息大小是否超过32K截止值。我试图通过注册继承自SignalR自身类型的自定义类型来实现此目的,如此处记录:https://github.com/SignalR/SignalR/wiki/Extensibility,但是当对象从服务器推送到客户端时,没有达到预期的方法。我是在做错什么,还是有另一种方法来监视超过32K的对象?

    public class MessageBusWithChecking : MessageBus
    {       
        public MessageBusWithChecking(IDependencyResolver resolver) : base(resolver)
        {

        }

        //This method is never hit
        public override Task Publish(Message message)
        {
            var messageSize = message.Value.Count();

            const int mem32K = 1024 * 32;
            if (messageSize > mem32K)
            {
                //Do Logging here
            }

            return base.Publish(message);
        }
    }

//App startup code...
public class Startup
    {
    public void Configuration(IAppBuilder app)
        {
            ...
            //Register custom class
            GlobalHost.DependencyResolver.Register(typeof(IMessageBus), () => new MessageBusWithChecking(GlobalHost.DependencyResolver));
            ...
        }
    }

我也尝试了与“ IJsonSerializer”相同的过程,但也没有结果。

0 个答案:

没有答案