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、效果图

参考文档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

最新文章

  1. MySQL启动错误排查
  2. 阿里 classloader
  3. 《大数据Spark企业级实战 》
  4. Effective C++ 笔记一 让自己习惯C++
  5. ORA-02069: global_names parameter must be set to TRUE for this operation
  6. RouterOS(ROS)修改vrrp的mac地址
  7. quartz搭建与应用
  8. 相关Python分割操作
  9. 使用Ajax
  10. matplotlib散点数据-【老鱼学matplotlib】
  11. es6 语法 (数组扩展)
  12. js写插件教程入门
  13. LeetCode one Two Sum
  14. require 和 import 区别
  15. LeetCode 4. Median of Two Sorted Arrays &amp; 归并排序
  16. ScheduledExecutorService的使用
  17. Introduction to Learning to Trade with Reinforcement Learning
  18. FPGA内部动态可重置PLL讲解(二)
  19. 全套 AR 应用设计攻略都在这里!
  20. 51nod 1284 2 3 5 7的倍数

热门文章

  1. Simple tutorial for using TensorFlow to compute a linear regression
  2. 定义范围中的备选方案生成、横向思维、创建WBS、工作包定义、WBS、确认范围过程和实施质量过程的关系、联合应用设计和质量功能展开QFD
  3. Hessian探究(一)Hessian与Spring结合
  4. C++对C的函数拓展 - 占位参数
  5. MyBatis进阶(一)运行原理
  6. Windows Server2012R2 安装 SharePoint 2013 的必备组件
  7. 代理服务器 详解 Apache与Nginx的比较与分析
  8. Uva - 177 - Paper Folding
  9. 2013暑假总结-SB学习
  10. Leetcode_24_Swap Nodes in Pairs