桌面共享

This commit is contained in:
snltty
2024-04-01 09:49:35 +08:00
parent c3f80b40c0
commit 208e1bffbf
293 changed files with 5880 additions and 3918 deletions

View File

@@ -0,0 +1,54 @@
using cmonitor.api;
using cmonitor.plugins.signIn.messenger;
using cmonitor.plugins.viewer.messenger;
using cmonitor.plugins.viewer.report;
using cmonitor.server;
using common.libs.extends;
using MemoryPack;
namespace cmonitor.plugins.viewer
{
public sealed class ViewerApiController : IApiController
{
private readonly MessengerSender messengerSender;
private readonly SignCaching signCaching;
public ViewerApiController(MessengerSender messengerSender, SignCaching signCaching)
{
this.messengerSender = messengerSender;
this.signCaching = signCaching;
}
public bool Update(ApiControllerParamsInfo param)
{
ViewerUpdateParamInfo viewer = param.Content.DeJson<ViewerUpdateParamInfo>();
//去掉服务端
var list = viewer.Clients.ToList();
list.Remove(viewer.Server);
viewer.Clients = list.ToArray();
if (signCaching.Get(viewer.Server, out SignCacheInfo cache) && cache.Connected)
{
byte[] serverBytes = MemoryPackSerializer.Serialize(new ViewerConfigInfo
{
Clients = viewer.Clients,
ConnectStr = string.Empty,
Mode = ViewerMode.Server,
Open = viewer.Open
});
_ = messengerSender.SendOnly(new MessageRequestWrap
{
Connection = cache.Connection,
MessengerId = (ushort)ViewerMessengerIds.Server,
Payload = serverBytes
});
}
return true;
}
public sealed class ViewerUpdateParamInfo
{
public bool Open { get; set; }
public string Server { get; set; } = string.Empty;
public string[] Clients { get; set; } = Array.Empty<string>();
}
}
}