|
|
|
@ -25,7 +25,7 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
{ |
|
|
|
|
private readonly SqlSugarClient _db;//数据库 |
|
|
|
|
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 |
|
|
|
|
private readonly ILogger<LoginController> _logger;//日志 |
|
|
|
|
private readonly ILogger<LoginController> logger;//日志 |
|
|
|
|
private readonly IConfiguration _configuration; |
|
|
|
|
private static object obj = new object(); |
|
|
|
|
private readonly WechatMessagerClient _wechatMessagerClient; |
|
|
|
@ -33,10 +33,13 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
private static Dictionary<string, WebSocket> CONNECT_POOL = new Dictionary<string, WebSocket>();//用户连接池 |
|
|
|
|
private static Dictionary<string, Addressda> meeting_pool = new Dictionary<string, Addressda>();//会议连接池 |
|
|
|
|
private static Dictionary<string, string> userzx = new Dictionary<string, string>();//检察官在线池 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//private static Dictionary<string, List<MessageInfo>> MESSAGE_POOL = new Dictionary<string, List<MessageInfo>>();//离线消息池 |
|
|
|
|
public WebSocketController(ILogger<LoginController> logger, SqlSugarClient db, User userdata, WechatMessagerClient wechatMessagerClient, IConfiguration configuration) |
|
|
|
|
public WebSocketController(ILogger<LoginController> _logger, SqlSugarClient db, User userdata, WechatMessagerClient wechatMessagerClient, IConfiguration configuration) |
|
|
|
|
{ |
|
|
|
|
_logger = logger; |
|
|
|
|
logger = _logger; |
|
|
|
|
_db = db; |
|
|
|
|
_userdata = userdata.Userdata(); |
|
|
|
|
_configuration = configuration; |
|
|
|
@ -71,7 +74,7 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
if (socket != CONNECT_POOL[user])//当前对象不一致,更新 |
|
|
|
|
CONNECT_POOL[user] = socket; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
logger.LogInformation($"{user} connected"); |
|
|
|
|
string descUser = string.Empty;//目的用户 |
|
|
|
|
while (true) |
|
|
|
|
{ |
|
|
|
@ -96,10 +99,12 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
{ |
|
|
|
|
var data = Encoding.UTF8.GetString(buffer); |
|
|
|
|
Console.WriteLine(data); |
|
|
|
|
logger.LogInformation($"{user} disconnected"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
logger.LogInformation($"{user} disconnected"); |
|
|
|
|
Console.WriteLine("断开连接"); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
@ -123,6 +128,7 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
logger.LogInformation($"send data [{Sendingdata.ConvertToJsonStr()}]"); |
|
|
|
|
//获取发送人连接 |
|
|
|
|
var socket = CONNECT_POOL.Where(q => q.Key == _userdata.Id).Select(q => q.Value).FirstOrDefault(); |
|
|
|
|
if (socket!=null&&socket.State == WebSocketState.Open) |
|
|
|
|