ASP.NET Core 2.2 WebApi 系列【九】使用SignalR
2021-01-27 09:12
标签:func 文件夹 nts 消息 指定位置 error listen 注册 client 右键点击项目->然后选择“添加” >“客户端库” 提供程序选择:unpkg ,库选择:@aspnet/signalr@1.1.4 选择“选择特定文件” ,展开“dist/browser” 文件夹,然后选择“signalr.js” 和“signalr.min.js” 选择指定位置安装即可 创建MessageHub 并继承Hub。Hub类管理连接、组和消息 我们需要在Startup.cs启动类的ConfigureServices中注册SignalR服务 设置SignalR路由 注意:UseSignalR 必须在 UseMvc 之前调用! 引用signalr.js类库文件到html中 打开html页面,F12在 Console 看到打印以下信息说明连接成功。 输入文字,点击发送按钮。(我这里是alert,如有其它需求,可在接收消息回调里面处理逻辑) 将消息从外部发送到 hub。当使用控制器时,需要注入一个 IHubContext 实例。 调用接口测试 ASP.NET Core 2.2 WebApi 系列【九】使用SignalR 标签:func 文件夹 nts 消息 指定位置 error listen 注册 client 原文地址:https://www.cnblogs.com/tenghao510/p/11937953.html1.添加 SignalR 客户端库
2.定义Hub集线器
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
namespace NetCoreWebApi.SignalR
{
///
3.配置SignalR
services.AddSignalR();
//设置SignalR路由,指向自定义类MessageHub
app.UseSignalR(route =>
{
route.MapHub
4.编写SignalR 客户端代码
DOCTYPE HTML>
html>
head>
head>
body>
div style="text-align: center;margin-top: 5%">
input type="text" id="message" placeholder="消息" />
button type="button" id="sendBtn">发送button>
div>
script src="../Resources/lib/signalr/dist/browser/signalr.js">script>
body>
html>
script>
var connection = new signalR.HubConnectionBuilder()
//配置路由
.withUrl("/MessageHub")
//日志信息
.configureLogging(signalR.LogLevel.Information)
//创建
.build();
//接受消息
connection.on("ReceiveMessage", (message) => {
alert("收到消息===>" + message);
});
//发送消息
document.getElementById("sendBtn").addEventListener("click", function () {
var message = document.getElementById(‘message‘).value;
connection.invoke("SendMessage", "tenghao510@qq.com", message).catch(err =>
console.error(err.toString())
);
});
//开始连接
connection.start().then(e => {
connection.invoke("SendLogin", "tenghao510@qq.com").catch(err =>
console.error(err.toString())
);
}).catch(err => console.error(err.toString()));
script>
5.运行程序
6.从控制器发布消息
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
using NetCoreWebApi.SignalR;
namespace NetCoreWebApi.Controllers
{
///
文章标题:ASP.NET Core 2.2 WebApi 系列【九】使用SignalR
文章链接:http://soscw.com/index.php/essay/47678.html