发布时间:2018-06-29责任编辑:满帅 浏览:1926
https://www.cnblogs.com/Leo_wl/p/4793284.html
1. 安装SignalR,找SignalR进行安装

2. 添加MessageHub类

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

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);
});
}
项目开发组 供稿