有的時候,需要從外部訪問持久性連接或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 }
代碼中的兩種方式任意一種都行,看服務端采取的是什么方式。