ASP.Net MVC SignalR的应用
ASP.Net MVC SignalR的应用
创建ASP.NET Web应用程序
配置项目
史上最全面的SignalR系列教程-认识SignalR 或者直接看Microsoft文档 Introduction to SignalR,SignalR可用于任何即时性的功能; Tutorial: Real-time chat with SignalR 2 and MVC 5。最近做的一个MVC项目有个模块是要使用即时通信实现弹幕效果。既要考虑通信的实时性也要考虑服务器性能和资源消耗,所幸项目对浏览器的版本没有要求。所以我最先想到用WebSocket来实现,在查询资料时, 看到 SignalR 这个技术,也就是本专题所讨论的对象。在拜读了 史上最全面的SignalR系列教程-认识SignalR ,算是对 SignalR有一个简单的认识,SignalR 是 .NET平台为我们提供的一种简洁高效智能的实时信息交互技术,SignalR 比 WebSocket 还要简单,这简直是我的福音。所以我直接一个Demo开始尝试。
- 使用Visual Studio 2019 创建一个MVC工程-SignalRMvcChat
创建ASP.NET Web应用程序
配置项目
- 选择MVC,然后身份验证上,选择“无身份验证”,然后单击“创建”。
- 在项目上右击-添加新建项,选择 Installed > Visual C# > Web > SignalR and then 选择 SignalR Hub Class (v2).
- 将类命名为ChatHub并将其添加到项目中。 此步骤将创建ChatHub.cs集线器类文件,并将一组支持SignalR的脚本文件和程序集引用添加到项目:
- 用以下代码替换新建的ChatHub.cs类文件中的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRMvcChat
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.addNewMessageToPage(name, message);
}
}
}
- 在项目上,右键选择 添加>类,命名为Startup.cs,并用以下代码替换新建的Startup.cs类文件中的代码:
using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(SignalRMvcChat.Startup))]
namespace SignalRMvcChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
注意: SignalR 框架使用Owin组件,每一个使用的OWin组件的Web框架都需要一个Startup入口类,用来声明OWin组件:
1.项目会自动扫描程序集根下的名为Startup的类,来作为入口类;
2.通过添加 [assembly: OwinStartup(typeof(SignalRChat.Startup))] 标签标记入口类;
3.如果你的启动类不在当前命名空间下,需要在Web.config中添加节点: 查看源码以上就是今天给大家的分享全部内容了,祝大家元旦快乐!
史上最全面的SignalR系列教程-认识SignalRTutorial: Real-time chat with SignalR 2 and MVC 5