yl
2022-10-25 dd651f9ce0156fc7db869da04e0c2004a1811c52
VueWebApi/Hubs/ChatHub.cs
@@ -1,5 +1,6 @@
using Dapper;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
using System;
using System.Collections.Generic;
using System.Data;
@@ -10,6 +11,10 @@
namespace VueWebApi.Hubs
{
    /// <summary>
    /// chatHub集线器类
    /// </summary>
    [HubName("chatHub")]
    public class ChatHub : Hub
    {
        /// <summary>
@@ -52,14 +57,25 @@
        /// <param name="json"></param>
        public void SendByGroupList(string username,string wkshpcode, string eqpcode, List<AnDnDate> json)
        {
            for (int i = 0; i < json.Count; i++)
            try
            {
                string cont = wkshpcode + "对应设备" + eqpcode + json[i].name.ToString();
                var departmentIDs = json[i].children.ToList().Select(x => x.username).ToList();//获取推送人员
                var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x => x.Value).ToList(); //匹配已经登录的推送人员唯一码
                var FindPublicBaseDicName = _connections.Where(d => FindPublicBaseDic.Contains(d.Value)).Select(x => x.Key).ToList(); //根据唯一码匹配已经登录的推送人员名称
                Clients.Clients(FindPublicBaseDic).SendMessage("来自用户:" + username +" 内容:" + cont + "时间" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息通知!");
                for (int i = 0; i < json.Count; i++)
                {
                    string cont = wkshpcode + "对应设备" + eqpcode + json[i].name.ToString();
                    var departmentIDs = json[i].children.ToList().Select(x => x.username).ToList();//获取推送人员
                    var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x => x.Value).ToList(); //匹配已经登录的推送人员唯一码
                    LogHelper.WriteLogData("在线人数:"+FindPublicBaseDic.Count.ToString());
                    var FindPublicBaseDicName = _connections.Where(d => FindPublicBaseDic.Contains(d.Value)).Select(x => x.Key).ToList(); //根据唯一码匹配已经登录的推送人员名称
                    LogHelper.WriteLogData("在线人人员名称:" + FindPublicBaseDicName.ToString());
                    Clients.Clients(FindPublicBaseDic).SendMessage("来自用户:" + username + " 内容:" + cont + "时间" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息通知!");
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLogData("报错:"+ex.Message);
                throw;
            }
        }
@@ -80,6 +96,7 @@
            {
                //每次登陆id会发生变化
                _connections[name] = Context.ConnectionId;
                LogHelper.WriteLogData("执行关联:-->" + _connections[name]);
            }
            //新用户上线,服务器广播该用户名
            Clients.All.loginUser(userList);