Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离
2024-08-31 14:35:47
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/zrkcode/SignalR.git
最新文章
- MySQL启动错误排查
- 阿里 classloader
- 《大数据Spark企业级实战 》
- Effective C++ 笔记一 让自己习惯C++
- ORA-02069: global_names parameter must be set to TRUE for this operation
- RouterOS(ROS)修改vrrp的mac地址
- quartz搭建与应用
- 相关Python分割操作
- 使用Ajax
- matplotlib散点数据-【老鱼学matplotlib】
- es6 语法 (数组扩展)
- js写插件教程入门
- LeetCode one Two Sum
- require 和 import 区别
- LeetCode 4. Median of Two Sorted Arrays &; 归并排序
- ScheduledExecutorService的使用
- Introduction to Learning to Trade with Reinforcement Learning
- FPGA内部动态可重置PLL讲解(二)
- 全套 AR 应用设计攻略都在这里!
- 51nod 1284 2 3 5 7的倍数
热门文章
- Simple tutorial for using TensorFlow to compute a linear regression
- 定义范围中的备选方案生成、横向思维、创建WBS、工作包定义、WBS、确认范围过程和实施质量过程的关系、联合应用设计和质量功能展开QFD
- Hessian探究(一)Hessian与Spring结合
- C++对C的函数拓展 - 占位参数
- MyBatis进阶(一)运行原理
- Windows Server2012R2 安装 SharePoint 2013 的必备组件
- 代理服务器 详解 Apache与Nginx的比较与分析
- Uva - 177 - Paper Folding
- 2013暑假总结-SB学习
- Leetcode_24_Swap Nodes in Pairs