Asp.Net SignalR 集线器不使用代理的实现

简介: 原文:Asp.Net SignalR 集线器不使用代理的实现不使用生成代理JS的实现 可能有同学会觉得使用集线器很麻烦,要么引入虚拟目录,要么在生成期间生成js文件,再引入js文件进行开发。难道就没有比较清爽的方式吗?这个当然是有的,先不要(。・∀・)ノ゙嗨皮起来, 看完后再做出选择 简单看一下生...
原文: Asp.Net SignalR 集线器不使用代理的实现

不使用生成代理JS的实现

可能有同学会觉得使用集线器很麻烦,要么引入虚拟目录,要么在生成期间生成js文件,再引入js文件进行开发。难道就没有比较清爽的方式吗?这个当然是有的,先不要(。・∀・)ノ゙嗨皮起来, 看完后再做出选择

简单看一下生成的js文件,其实代码一大堆,我们也可以根据这个js来写一个

image

首先我们需要有连接对象

let hubDemo = $.hubConnection("/simpleHub");

然后创建HubDemo类的代理

var proxy = hubDemo.createHubProxy("HubDemo");

然后就可以开启连接了,这里使用了代理对象执行 HelloService方法

hubDemo.start().done(function () {
            proxy.invoke("HelloService");
        });

记得HelloService方法里会调用HelloClient函数,所以这个也是不能少的

proxy.on("helloClient", function() {
            console.log("收到服务器的问候");
        })

这时候可以运行起来看看效果了,嗯 这看起来很完美

image

完整代码如下,可以看到这些类名和方法名都是需要去指定的,也就是虽然完全解耦但是这对开发带来了难度,而这些代理也只是对代理生成的js的简化版,而且也没有智能提醒了,因为要自己写-.- 两种方式各有利弊,用哪个都不错。根据项目情况自行选择吧

let hubDemo = $.hubConnection("/simpleHub");

        var proxy = hubDemo.createHubProxy("HubDemo");

        hubDemo.start().done(function () {
            proxy.invoke("HelloService");
        });

        proxy.on("helloClient", function() {
            console.log("收到服务器的问候");
        });

 

HubName与HubMethodName

我们可以使用这两个特性为我们的方法与类进行重命名,比如方法名是Hello,但是我想要客户端调用的是MyHello。

[HubMethodName("Hello")]
        public void HelloService(string age1, int age2)
        {
            Clients.All.helloClient();
        }

HubName作用与HubMethodName的作用是类似的,不同的是作用于类上

[HubName("HubDemo2")]
public class HubDemo : Hub
目录
相关文章
|
8月前
|
存储 开发框架 .NET
ASP.NET Core SignalR系列之Hub教程
ASP.NET Core SignalR系列之Hub教程
102 0
|
9月前
|
移动开发 开发框架 网络协议
WPF+ASP.NET SignalR实现动态折线图
WPF+ASP.NET SignalR实现动态折线图
82 0
|
9月前
|
存储 开发框架 .NET
WPF+ASP.NET SignalR实现后台通知
WPF+ASP.NET SignalR实现后台通知
81 0
|
9月前
|
开发框架 前端开发 JavaScript
WPF+ASP.NET SignalR实现简易在线聊天功能
WPF+ASP.NET SignalR实现简易在线聊天功能
129 0
|
前端开发 .NET
使用ASP.NET SignalR实现一个简单的聊天室
原文:使用ASP.NET SignalR实现一个简单的聊天室  前言   距离我写上一篇博客已经又过了一年半载了,时间过得很快,一眨眼,就把人变得沧桑了许多。青春是短暂的,知识是无限的。要用短暂的青春,去学无穷无尽的知识,及时当勉励,岁月不待人。
1861 0
|
.NET 中间件 开发框架
Asp.Net SignalR - 准备工作
原文:Asp.Net SignalR - 准备工作 实时通讯 在做Web的时候经常会有客户端和服务端实时通讯的需求,比如即时聊天等。目前实时通讯有很多种规范和实现方式,但是每一个对浏览器的兼容性或者性能都不是很完美。
1156 0
|
JavaScript .NET 开发框架
Asp.Net SignalR Hub集线器
原文:Asp.Net SignalR Hub集线器 集线器Hub类 使用持久连接类去开发是有些困难的,因为基于事件的开发方式,我们可以进行操作的地方也仅仅只是OnReceived事件内,这有些像websocket的方式。
1653 0
|
.NET 开发框架 中间件
Asp.Net SignalR - 持久连接类
原文:Asp.Net SignalR - 持久连接类 持久连接类 通过SignalR持久连接类可以快速的构建一个即时通讯的应用,上篇博文已经我们创建一个owin Startup类和一个持久连接类来完成我们的工作,然后在Startup类的Configuration方法中添加了我们的中间件,配置名称 myconnection1 简单看一下持久连接类,里面有四个可供我们重写的方法,从字面上就可以看出是什么意思,需要一提的是持久连接类是享元模式的实践,因为一个客户端和服务器的连接过程中只会创建一个对象,后面都不会再创建对象。
1092 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
41 0