Signalr自托管最简实践

最近几天,项目要开发一个即时通讯的产品,同时需要把服务端嵌入到已有的winform程序里,也就是说,不能依赖网站发布器(iis、tomcat、apache等)。

于是查了大量资料,发现绝大部分的资料,都是讲的如何托管在web应用里,真正其他托管的很少,即便有,往往也介绍不全,照抄之后,跑不起来。

于是花了一些时间,写了一个自托管的signalr应用,现在把最简配置记录如下,希望对大家有所帮助。


首先,这个signalr服务端,是托管在winform程序里,因此,第一步是建立一个winform项目ChatMgr, 同时建立一个空的web站点Test用来测试。

然后通过nuget给ChatMgr项目安装Microsoft.AspNet.SignalR.SelfHost 和 Microsoft.Owin.Cors组件


接着给ChatMgr程序添加Signalr控制类Signalr.cs


这里面有两个对象类,一个是注册signalr服务的启动类Startup,一个是signalr控制器(集线器),具体信息交互处理的实现类,

这里只简单实现一个信息交换传递的方法。

接下来是在winform应用的入口处启动signalr服务:


这里注意,你注册的signalr服务的domain,就是客户端访问的domain。

到这一步,服务端程序就建立好了,接下来搭建测试环境:

首先用nuget给测试站点添加jquery 和 Microsoft.AspNet.SignalR.JS的包引用


然后是一个简单的测试页,照搬的网上一个资料内容:


这里也有注意事项,一是signalr.js依赖jquery,因此需要引用适当版本的jquery,

其次是在引用了signalr.js后,还需要配置服务端虚拟路径,也就是上图中红框标注的空引用。


最后是整个项目的全家福:


接着运行起来测试一下,首先运行winform程序,启动服务,

然后打开网页,尝试发消息:


ok,程序完全跑通!

今天给signalr服务添加了主推功能,根据网上资料,有三种实现方法,也列举一下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值