SignalR及时通知功能

时间:2023-11-25 12:19:26

功能需求,现时已经编写了一个hub能够,将后台的消息发送至前台中,并给出提示,但如后台已经发生了变化,由内部调用消息时,应该怎样处理?

1.编写Hub类

using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace ArasServiceObject.Hubs
{   
    //连接的Hub一定要与Hub Class中的名字一样
    public class ChatHub : Hub
    {        
        //public void Send(string name,string pi_message)
        //{
        //    Clients.All.addNewMessageToPage(name, DateTime.Now.ToString() + "--" + pi_message);            
        //}
        static IHubContext signalRHub;
        public static void Send(string name, string pi_message)
        {
            if (signalRHub == null)
            {
                signalRHub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
            }
            if (signalRHub != null)
            {
                signalRHub.Clients.All.addNewMessageToPage(name, DateTime.Now.ToString() + "--" + pi_message);
            }
        }
    }
}

2. 事件源调用
ArasServiceObject.Hubs.ChatHub.Send("System","Run GetByID");