<script src="~/lib/Signalr/signalr.js"></script>
1.在UI层和组件层(Componets)中NuGet添加Signalr包(全名:Microsoft.AspNetCore.SignalR.Core)
选择1.0.1版本的就行了。
2.在组件层(Componets)中添加一个NotificationHub.cs类
using Microsoft.AspNetCore.SignalR;
using System;
using System.Threading.Tasks;
namespace YouYi.Market.Componets
{
public class NotificationHub : Hub
{
/// <summary>
/// 建立连接时触发
/// </summary>
/// <returns></returns>
public override async Task OnConnectedAsync()
{
//给所有的客户端发送消息 方法名 自己的连接Id
await Clients.All.SendAsync("ShangXian", Context.ConnectionId);
}
/// <summary>
/// 离开连接时触发
/// </summary>
/// <param name="ex"></param>
/// <returns></returns>
public override async Task OnDisconnectedAsync(Exception ex)
{
//给所有客户端发送消息 方法名 自己的连接Id
await Clients.All.SendAsync("XiaXian", Context.ConnectionId);
}
/// <summary>
/// 向所有人推送消息
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
public Task Send(string message)
{
return Clients.All.SendAsync("ReceiveMessage", $"{message}");
}
/// <summary>
/// 向指定组推送消息(群消息)
/// </summary>
/// <param name="groupName"></param>
/// <param name="message"></param>
/// <returns></returns>
public Task SendToGroup(string groupName, string message)
{
// 指定一个组 消息
return Clients.Group(groupName).SendAsync("ReceiveMessage", $"{Context.ConnectionId}@{groupName}: {message}");
}
/// <summary>
/// 加入指定组并向组推送消息
/// </summary>
/// <param name="groupName"></param>
/// <returns></returns>
public async Task JoinGroup(string groupName)
{
//添加群里去 当前用户添加到一个群里去
await Groups.AddToGroupAsync(Context.ConnectionId, groupName);
//给群里的人发送一个消息
await Clients.Group(groupName).SendAsync("ReceiveMessage", $"{Context.ConnectionId} joined {groupName}");
}
/// <summary>
/// 退出指定组并向组推送消息
/// </summary>
/// <param name="groupName"></param>
/// <returns></returns>
public async Task LeaveGroup(string groupName)
{
//退出群
await Groups.RemoveFromGroupAsync(Context.Conne