Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离

摘要:
npminit-ynpminstall@aspnet/signalr˂!

1、新建WebApi

Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离第1张

Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离第2张

2、安装Microsoft.AspNetCore.SignalR

Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离第3张

3、新建一个集线器和消息类

usingMicrosoft.AspNetCore.SignalR;
usingSystem.Threading.Tasks;
namespaceWebApi.Chat
{
    public classChatHub : Hub
    {
        //SendMsg用于前端调用
        publicTask SendMsg(ChatMessageInfo info)
        {
            //在客户端实现此处的Show方法
            return Clients.All.SendAsync("Show", info.UserName + ":" +info.Message);
        }
    }
}
namespaceWebApi.Chat
{
    public classChatMessageInfo
    {
        public string UserName { get; set; }
        public string Message { get; set; }
    }
}

4、配置Startup

Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离第4张

5、新建html,并发布到iis

注:signalr.min.js不依赖jquery,此处只是方便编码,通过以下两个命令在node_modules @aspnetsignalrdistrowser中获得signalr的js文件。

npm init  -y
npm install @aspnet/signalr
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<input type="text"id="userid"placeholder="Enter user name" />
<br>
<input type="text"id="message"placeholder="Enter sned message" />
<input type="button"id="btnSend"value="Send" />
<ul id="msglist"></ul>
<script type="text/javascript"src="jquery.min.js"></script>
<script type="text/javascript"src="signalr.min.js"></script>
<script>
    $(function() {
        //服务地址
let hubUrl = 'http://localhost:50432/chathub';
        let httpConnection = newsignalR.HttpConnection(hubUrl);
        let hubConnection = newsignalR.HubConnection(httpConnection);
        $("#btnSend").click(function() {
            //新建对象
let obj = newObject();
            obj.UserName =$('#userid').val();
            obj.Message =$('#message').val();
            //调用服务器方法
hubConnection.invoke('SendMsg', obj);
        });
        //服务器回调方法
hubConnection.on('Show', data =>{
            $('#msglist').append($('<li>').text(data));
        });
        hubConnection.start();
    });
</script>
</body>
</html>

6、效果图

Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离第5张

参考文档https://docs.microsoft.com/en-us/aspnet/core/signalr/get-started?tabs=visual-studio&view=aspnetcore-2.1

Github地址https://github.com/zrkcode/SignalR.git

免责声明:文章转载自《Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android学习之七:使用Container10mybatis分页技术下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

windows10 中微信(UWP)版本不显示通知消息

前言: 前段时间笔者更换了升级了WINDOWS10系统,从应用商店安装微信后,使用期间不会推送消息通知,右下角的通知栏也无法添加微信图标。搜索百度和Google后,发现很多人都是这样,这是微信(UWP)版本所存在的缺陷。 解决办法: 更换成:微信For Windows版本即可 总结: 下边是一些微信 (UWP)所没有的用户常用功能。 ◆ 缺乏最受用户关注...

Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心

前言 随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus消息总线发出消息通知(Kafka、RabbitMQ等)到各个服务完成配置动态更新,否者只有重启各个微服务实例,但是nacos可以同时实现注册和配置中心,以及配...

CAT 监控搭建

简介 CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。 已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 开源地址:https://github.com/dianping/cat/ D...

android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在...

从点击Button到弹出一个MessageBox, 背后发生了什么

思考一个最简单的程序行为:我们的Dialog上有一个Button, 当用户用鼠标点击这个Button时, 我们弹出一个MessageBox。 这个看似简单的行为, 谁能说清楚它是如何运行起来的,背后究竟发生了什么?  下面是我个人尝试的解答: (1)我们的鼠标点击事件到达设备的驱动程序, 驱动程序把消息放入系统硬件输入队列SHIQ(system ha...

谷歌发布"自动机器学习"技术 AI可自我创造

谷歌发布"自动机器学习"技术 AI可自我创造 据Inverse报道,今年5月份,谷歌宣布其人工智能(AI)研究取得重大进展,似乎帮助科幻小说中最耸人听闻的末日预言成为现实。谷歌推出名为“自动机器学习(AutoML)”的技术,在无需人类工程师的支持下,允许AI进行自我创造。 从表面上看,这种技术可能会让人觉得AI发展终于迎来“奇点时刻”,它正在失去控制。但...