Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离
程序员文章站
2022-12-28 18:12:17
1、新建WebApi 2、安装Microsoft.AspNetCore.SignalR 3、新建一个集线器和消息类 4、配置Startup 5、新建html,并发布到iis下 注:signalr.min.js不依赖jquery,此处只是方便编码,通过以下两个命令在node_modules\ @asp ......
1、新建WebApi
2、安装Microsoft.AspNetCore.SignalR
3、新建一个集线器和消息类
using Microsoft.AspNetCore.SignalR; using System.Threading.Tasks; namespace WebApi.Chat { public class ChatHub : Hub { //SendMsg用于前端调用 public Task SendMsg(ChatMessageInfo info) { //在客户端实现此处的Show方法 return Clients.All.SendAsync("Show", info.UserName + ":" + info.Message); } } }
namespace WebApi.Chat { public class ChatMessageInfo { public string UserName { get; set; } public string Message { get; set; } } }
4、配置Startup
5、新建html,并发布到iis下
注:signalr.min.js不依赖jquery,此处只是方便编码,通过以下两个命令在node_modules\ @aspnet\signalr\dist\browser中获得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 = new signalR.HttpConnection(hubUrl); let hubConnection = new signalR.HubConnection(httpConnection); $("#btnSend").click(function () { //新建对象 let obj = new Object(); 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、效果图
Github地址:https://github.com/MrGuoKe/SignalR.git
推荐阅读
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之七使用JWT生成Token(个人见解)
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之十一Swagger使用一
-
SpringBootSecurity学习(17)前后端分离版之 OAuth2.0 数据库(JDBC)存储客户端
-
SpringBootSecurity学习(12)前后端分离版之简单登录
-
解决vue+springboot前后端分离项目,前端跨域访问sessionID不一致导致的session为null问题
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之十数据库基础方法的封装
-
前后端分离,认证框架分析
-
详解前后端分离之VueJS前端
-
详解VueJs前后端分离跨域问题
-
微信登录的几种方式 以及在前后端分离如何实现