VueWebApi/Hubs/ChatHub.cs
@@ -1,8 +1,10 @@
using Microsoft.AspNet.SignalR;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Hubs
{
@@ -13,14 +15,10 @@
        /// </summary>
        private IList<string> userList = UserInfo.userList;
        /// <summary>
        /// 用户的connectionID与用户名对照表
        /// </summary>
        private readonly static Dictionary<string, string> _connections = new Dictionary<string, string>();
        /// <summary>
        /// 发送函数,前端触发该函数给服务器,服务器在将消息发送给前端,(Clients.All.(函数名)是全体广播,另外Clients提供了组播,广播排除,组播排除,指定用户播发等等)
@@ -32,14 +30,16 @@
        public void SendByGroup(string name1, string name2, string cont)
        {
            //Client内为用户的id,是唯一的,SendMessage函数是前端函数,意思是服务器将该消息推送至前端
            //Clients.Client(_connections[name2]).SendMessage("来自用户:" + name1 + " 内容:" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息推送!");
            Clients.Client(_connections[name2]).SendMessage("来自用户:" + name1 + " 内容:" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息推送!");
        }
        public void SendByGroups(string name1, IList<string>name2, string cont)
        public void SendByGroups(string name1, DataTable name2, string cont)
        {
            //Client内为用户的id,是唯一的,SendMessage函数是前端函数,意思是服务器将该消息推送至前端
            Clients.Clients(name2).SendMessage("来自用户:" + name1 + " 内容:" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息推送!");
            var departmentIDs = name2.AsEnumerable().ToList().Select(x => x.Field<string>("name")).ToList();
            var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x=>x.Value).ToList();
            Clients.Clients(FindPublicBaseDic).SendMessage("来自用户:" + name1 + " 内容:" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息推送!");
        }
        /// <summary>
        /// 用户上线函数
@@ -62,6 +62,8 @@
            Clients.All.loginUser(userList);
        }
    }
    public class UserInfo
    {
        public static IList<string> userList = new List<string>();