xp可以安装.net framework 4.6吗_.NET中SignalR自托管全解(使用SelfHost)

本文介绍了.NET中的SignalR自托管(Self-Host)应用,通过一个控制台应用程序示例展示如何创建SignalR服务端,并讨论了自托管的优势。同时,文章还展示了如何用JavaScript客户端和WinForm客户端访问自托管的SignalR服务端,实现实时通信功能。
摘要由CSDN通过智能技术生成

(给DotNet加星标,提升.Net技能)

转自:.NET快速开发框架cnblogs.com/huyong/p/11381349.html

一、概述

我们对SignalR的概念以及SignalR的最主要的两类通信模型(Persistent 

Connections与Hubs)进行了详细的对比讲解,也做了案例展示。

本篇将为大家介绍.NET特有的Self-Host自托管的应用,即以Self-Host自托管为宿主加载SignalR服务。

宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个console或者windowService上,这都是可以的。

Self-Host的介绍我们可以参考msdn官方事例https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/self-host 这是一个wcf的事例。

SignalR常常依托于ASP.NET应用程序运行于IIS中,但它还可以自我托管(比如作为console winform、Windows service),只要我们使用self-host库就可以了。

该库向所有的SignalR 2库一样,构建于OWIN (Open Web Interface for .NET)。OWIN定义了一个在.NET web 服务端和web 应用程序的抽象。

OWIN解耦了从服务端来的web 应用程序,这使得OWIN对于子托管web应用程序于自己的进程中得以表现得很完美。

有的小伙伴可能就要问了,为什么一定要使用这种方式来托管呢?基于IIS的方式不是更简单吗?不托管于IIS的原因主要有以下方面的考虑:

  • 我们已经构建了一个服务端程序,没有运行在IIS上,重新搭建成本太高。

  • IIS的方式性能开销很大。

  • signalR需要扩展到现有程序中,如Windows服务中等。

  • 其他的一些原因....

二、使用Self-Host方式创建SignalR服务端

为了更简单的说明self-host托管的方式,我们用控制台应用程序来做演示。当然我们也可以自托管到Windows服务中去,如果你更希望托管到Windows服务,可以参考Self-Hosting SignalR in a Windows Service

在上一项目的基础上,我们新建一个名为:SignalRSelfHost的控制台应用程序,如下所所示:

9c757101561b2f37f56d5104217e6820.png

要使用Selft-Host宿主SignalR,必须引用Microsoft.AspNet.SignalR.SelfHost包。我们在程序包管理控制台输入以下命令安装SelfHost包。

Install-Package Microsoft.AspNet.SignalR.SelfHost

要想支持跨域访问,还需要安装

Install-Package Microsoft.Owin.Cors

如果用命令的方式安装失败,我们可以用NuGet的方式安装,如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值