让我为你详细讲解“ASP.NET使用SignalR2实现服务器广播”的完整攻略。
一、准备工作
- 安装 Visual Studio 软件;
- 安装 Microsoft.AspNet.SignalR NuGet 包;
- 在 Global.asax.cs 中启用 SignalR,添加以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using Microsoft.AspNet.SignalR;
namespace YourWebApplication
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
// 启用 SignalR
GlobalHost.Configuration.EnableDetailedErrors = true;
GlobalHost.Configuration.DefaultMessageBufferSize = 100;
RouteTable.Routes.MapHubs();
}
}
}
二、创建 SignalR Hub
在你的程序的主命名空间下添加一个类,它必须继承自 Hub 类。
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace YourWebApplication.SignalR
{
[HubName("yourhubname")]
public class YourHub : Hub
{
public async Task Send(string message)
{
await Clients.All.SendAsync("receiveMessage", message);
}
}
}
三、客户端 JS 的 SignalR 客户端
- 连接:客户端和服务器将建立一个连接。
var connection = new signalR.HubConnection('/yourhubname');
connection.start().then(function () {
console.log('连接成功!');
}).catch(function (err) {
console.error(err);
});
- 客户端定义一个函数来处理从服务器端收到的“receiveMessage”事件。
connection.on("receiveMessage", function (message) {
console.log(message);
});
- 客户端调用服务器端 Send 方法。
connection.invoke('Send', 'Hello, World!');
四、服务器端代码调用客户端代码
服务器端可以调用客户端的 JavaScript 函数,以从服务端发送消息给客户端。
Clients.Client(Context.ConnectionId).receiveMessage("Message from server.");
connection.on("receiveMessage", function (message) {
console.log(message);
});
connection.start().then(function () {
connection.invoke('Send', 'Hello, World!');
});
这就是 ASP.NET 使用 SignalR2 实现服务器广播的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET使用SignalR2实现服务器广播 - Python技术站