| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> asp.net core+vue+signalr示例 -> 正文阅读 |
|
[JavaScript知识库]asp.net core+vue+signalr示例 |
asp.net core版本:5.0 Vue版本:2.5.2 本文是入门教程,主要讲解如何利用SignalR从客户端调用服务器的函数,以及从服务器调用客户端的函数。 首先看一下服务端代码: 添加SignalR服务:
SignalR服务是asp.net core自带的,所以不需要从Nuget包管理器中添加。 因为客户端和服务器是跨域的,所以需要配置跨域。withOrigins的参数就是服务器允许访问的客户端地址,我这里的地址就是vue客户端的运行地址。如果我们不设置Origins(也就是任何客户端都可以访问该服务器),把WithOrigins改成AllowAnyOrigin(),那服务器就会报这样的错: 这个意思就是跨域协议不能同时允许所有源和证书访问。而且为了服务器的安全,我们也不建议这样的设置。?然后在配置管道时,加上app.UseCors("SignalRCorsPolicy");注意这行代码必须放在 最后我们需要配置一下集线器的路径;
接下来我们创建一个集线器类,让这个类继承自Hub,Hub的命名空间是:Microsoft.AspNetCore.SignalR 下面我们来看一下Vue客户端的代码(客户端我使用的是Vue的单页面应用,由template、script、style这3个模块组成) 首先我们需要安装SignalR包:npm install @aspnet/signalr。我在有些博客上看到的包名是:@microsoft/signalr,我最开始安装的是这个包,但是安装完之后这个包编译报错,所以我安装的是@aspnet/signalr包。 引入signalr:const signalR = require('@aspnet/signalr') 定义一个全局的connection变量,因为我们需要在不同的函数中使用这个变量,所以把它定义成全局的:
在页面加载后连接SignalR服务器
在methods里面定义initSignalR函数:
on函数就是提供给服务器调用的客户端函数,函数名是ConnectSucceeded,data是服务器返回给客户端的数据,可以是基础类型也可以是对象。 在服务器端的集线器抽象类Hub中,有一个虚函数OnConnectedAsync,就是建立连接后调用的函数,我们重写一下这个函数,给连接服务器的客户端发送一个连接成功的消息
Clients.Caller这个表示建立这个连接的客户端,这条信息只发送给建立这个连接的客户端。 SendAsync的第一个参数是客户端的函数名,第二个参数是发送给客户端的数据 接下来我们就可以运行服务器和客户端来建立连接了。在打开vue页面的时候,vue就会发起连接请求。按F12,打开浏览器的控制台,输出如下: ?现在连接已经建立成功了,下面我们从客户端调用服务器的函数并从服务器调用客户端函数 在template添加一个按钮,给按钮添加一个点击事件:
在客户端定义一个play函数,给服务器调用:
服务端集线器类代码:
客户端控制台输出如下: |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:13:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |