SignalR消息推送-新闻详情

SignalR消息推送


发布时间:2018-06-29责任编辑:满帅 浏览:1926


https://www.cnblogs.com/Leo_wl/p/4793284.html

1.   安装SignalR,找SignalR进行安装

1.png

2.   添加MessageHub

2.png

 public class MessageHub : Hub<IMessage>

    {

        public override System.Threading.Tasks.Task OnConnected()

        {

            return base.OnConnected();

        }

 

        public override System.Threading.Tasks.Task OnReconnected()

        {

            return base.OnReconnected();

        }

        public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)

        {

            return base.OnDisconnected(stopCalled);

        }

 

    }

 

 

    public class HubProxy

    {

        IHubContext ihubContext;

 

        public HubProxy(IHubContext ihubContext)

        {

            this.ihubContext = ihubContext;

        }

 

        //声音提醒

        public void ShowPlayVoice()

        {

            ihubContext.Clients.All.showPlayVoice();

        }

 

 

        //未处理事项的总数

        public void ShowNoProcessCount()

        {

            ihubContext.Clients.All.showNoProcessCount();

        }

    }

 

    public interface IMessage

    {

        void showPlayVoice();

 

        void showNoProcessCount();

 

    }

}

3.   推送的地方进行调用服务端方法

            HubProxy hubProxy = new HubProxy(GlobalHost.ConnectionManager.GetHubContext<MessageHub>());

 

            hubProxy.ShowNoProcessCount();//代办数量

            hubProxy.ShowPlayVoice();//语音提醒

4.   前台展示的地方

ngOnInit() {

 

this.messageHubProxy = $.connection.messageHub;

 

this.messageHubProxy.client.showPlayVoice = () => {

this.playVoice();

}

 

this.messageHubProxy.client.showNoProcessCount = () => {

this.noProcessCount();

}

 

this.connectToMessageHub();

 

}

3.png

 

messageHubProxy;

 

connectToMessageHub() {

$.connection.hub.start()

.done(() => {

console.log('Now connected, connection ID=' + $.connection.hub.id);

//this.noProcessCount();

})

.fail(() => {

console.log('Could not connect');

setTimeout(() => {

this.connectToMessageHub();

}, 5000);

});

}

 


项目开发组  供稿