Ai
20 Star 211 Fork 89

昨夜丶雨疏风骤/基于.NET8平台WebApi项目

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
FleckServer.cs 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
昨夜丶雨疏风骤 提交于 2022-12-05 15:22 +08:00 . updated
namespace NET7.Infrastructure.Fleck;
/// <summary>
/// Socket服务器
/// </summary>
public class FleckServer
{
static readonly List<IWebSocketConnection> allSockets = new();
static WebSocketServer server = null;
static readonly object lockobj = new();
public static void Start(string host = "ws://0.0.0.0:8888")
{
try
{
server = new WebSocketServer(host)
{
RestartAfterListenError = true
};
server.Start(socket =>
{
socket.OnOpen = () =>
{
lock (lockobj)
{
allSockets.Add(socket);
}
};
socket.OnClose = () =>
{
lock (lockobj)
{
allSockets.Remove(socket);
}
};
});
Log.Error("socket服务器已启动:" + server.Location);
}
catch (Exception ex)
{
Log.Error("socket启动异常:" + ex.Message);
}
}
public static bool SendMessage(List<string> ListUerid, string Message)
{
try
{
var userSockets = allSockets.Where(s => ListUerid.Contains(s.ConnectionInfo.Path.Split('/').Last())).ToList();
userSockets.ForEach(async s =>
{
await s.Send(Message);
});
return true;
}
catch (Exception ex)
{
Log.Error("消息发送异常:" + ex.Message);
return false;
}
}
public static bool SendMessageAll(string Message)
{
try
{
allSockets.ForEach(async s =>
{
await s.Send(Message);
});
return true;
}
catch (Exception ex)
{
Log.Error("消息发送异常:" + ex.Message);
return false;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/mengke2815/net6-project.git
git@gitee.com:mengke2815/net6-project.git
mengke2815
net6-project
基于.NET8平台WebApi项目
master

搜索帮助