Refactor/Fix: Standardize Dialog Themes & Fix WebSocket Fragmentation. Detail: UserInfoDialog design refresh, standardized all dialogs, fixed backend WebSocketServer fragmentation bug.

This commit is contained in:
backuppc
2025-12-30 17:35:02 +09:00
parent 8528d0206c
commit 5fe21528fc
27 changed files with 590 additions and 411 deletions

View File

@@ -124,14 +124,23 @@ namespace Project.Web
{
try
{
var result = await socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
List<byte> messageBytes = new List<byte>();
WebSocketReceiveResult result;
do
{
await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None);
result = await socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
{
await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None);
return;
}
messageBytes.AddRange(new ArraySegment<byte>(buffer, 0, result.Count));
}
else if (result.MessageType == WebSocketMessageType.Text)
while (!result.EndOfMessage);
if (result.MessageType == WebSocketMessageType.Text)
{
string msg = Encoding.UTF8.GetString(buffer, 0, result.Count);
string msg = Encoding.UTF8.GetString(messageBytes.ToArray());
await HandleMessage(msg, socket);
}
}
@@ -551,7 +560,7 @@ namespace Project.Web
case "USERLIST_GET_LIST":
{
string process = json.process ?? "%";
string process = json.process ?? string.Empty;
string result = _bridge.UserList_GetList(process);
var response = new { type = "USERLIST_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
@@ -725,6 +734,25 @@ namespace Project.Web
}
break;
// ===== Settings API =====
case "GET_SETTINGS":
{
string result = _bridge.GetSettings();
var response = new { type = "SETTINGS_DATA", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "SAVE_SETTINGS":
{
string settingsData = JsonConvert.SerializeObject(json.settings);
string result = _bridge.SaveSettings(settingsData);
var response = new { type = "SETTINGS_SAVED", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
// ===== Kuntae API =====
case "GET_KUNTAE_LIST":
{