SignalR入门之从外部访问持久性连接或Hub

有的时候,需要从外部访问持久性连接或Hub服务。

比如,假设A和B两个客户端正在聊天,那么系统或第三方在不参与聊天的情况需要为他们发送系统消息,那么此时,就需要独立来访问持久性连接或Hub服务。

之前在做的实例里用的都是html作为客户端的。现在将建一个aspx的页面为第三方操作页面,为客户端提供系统消息:

 1 using Microsoft.AspNet.SignalR;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Web;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8 
 9 namespace WebApplication1
10 {
11     public partial class WebForm1 : System.Web.UI.Page
12     {
13         protected void Page_Load(object sender, EventArgs e)
14         {
15             //从外部访问类访问服务器上相对应的hub服务  方式a
16             var context=GlobalHost.ConnectionManager.GetHubContext<TestHub>();//管理连接到的Hub服务
17             context.Clients.All.recevie("该吃饭了");//只要是连接到该hub服务上的客户端都会调用客户端recevie方法
18 
19             //从外部访问持久性连接服务 方式b
20             var connectionContext = GlobalHost.ConnectionManager.GetConnectionContext<TestConnection>();//管理相对应的持久性连接
21             connectionContext.Connection.Broadcast("该吃饭了");//向所有已连接的客户端发送信息
22 
23         }
24     }
25 }

代码中的两种方式任意一种都行,看服务端采取的是什么方式。

原文地址:https://www.cnblogs.com/hapgaoyi/p/6179235.html