Compare commits

..

2 Commits

Author SHA1 Message Date
9f4d4eaa15 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	RelayServer/Services/Chat/ChatSocketBehavior.cs
2026-04-06 15:27:23 -04:00
e5a1166bec Changed thread / added helper for UI based messages on MAIN thread. 2026-04-06 15:26:23 -04:00
2 changed files with 23 additions and 4 deletions

View File

@@ -105,6 +105,9 @@ public partial class MainPage : ContentPage
return; return;
} }
SafeSendRawToWebView($"[{_username}] RAW WS DATA: {e.Data}");
hybridWebView.SendRawMessage($"[{_username}] RAW WS DATA {e.Data}"); hybridWebView.SendRawMessage($"[{_username}] RAW WS DATA {e.Data}");
Console.WriteLine($"[{_username}] RAW WS DATA: {e.Data}"); Console.WriteLine($"[{_username}] RAW WS DATA: {e.Data}");
@@ -360,9 +363,9 @@ public partial class MainPage : ContentPage
{ {
//TODO: get bool value for if channel ID has an active call //TODO: get bool value for if channel ID has an active call
//TODO: Join RTC using current channel ID //TODO: Join RTC using current channel ID
hybridWebView.SendRawMessage($"Attempting to join RTC Channel {_currentChannelName}"); SafeSendRawToWebView($"Attempting to join RTC Channel {_currentChannelName}");
bool active = await ServerAPI.GetIsChannelActiveAsync(_currentChannelId); bool active = await ServerAPI.GetIsChannelActiveAsync(_currentChannelId);
hybridWebView.SendRawMessage($"Rtc Channel {_currentChannelName} is active: {active}"); SafeSendRawToWebView($"Rtc Channel {_currentChannelName} is active: {active}");
return active; return active;
//await hybridWebView.EvaluateJavaScriptAsync($"window.channelCallJoin({active})"); //await hybridWebView.EvaluateJavaScriptAsync($"window.channelCallJoin({active})");
@@ -382,7 +385,7 @@ public partial class MainPage : ContentPage
} }
catch (Exception ex) catch (Exception ex)
{ {
hybridWebView.SendRawMessage(ex.Message); SafeSendRawToWebView(ex.Message);
} }
} }
@@ -410,7 +413,7 @@ public partial class MainPage : ContentPage
private void OnSendMessageButtonClicked(object sender, EventArgs e) private void OnSendMessageButtonClicked(object sender, EventArgs e)
{ {
hybridWebView.SendRawMessage($"Hello from C#!"); SafeSendRawToWebView($"Hello from C#!");
} }
private async void OnHybridWebViewRawMessageReceived(object sender, HybridWebViewRawMessageReceivedEventArgs e) private async void OnHybridWebViewRawMessageReceived(object sender, HybridWebViewRawMessageReceivedEventArgs e)
@@ -479,4 +482,19 @@ public partial class MainPage : ContentPage
Console.WriteLine($"[{_username}] pushed RTC context into HybridWebView."); Console.WriteLine($"[{_username}] pushed RTC context into HybridWebView.");
} }
private void SafeSendRawToWebView(string message)
{
MainThread.BeginInvokeOnMainThread(() =>
{
try
{
hybridWebView.SendRawMessage(message);
}
catch (Exception ex)
{
Console.WriteLine($"[{_username}] failed to send raw message to HybridWebView: {ex.Message}");
}
});
}
} }

View File

@@ -81,6 +81,7 @@ public class ChatSocketBehavior : WebSocketBehavior
Console.WriteLine($"WebSocket closed: session={ID}, code={e.Code}, reason={e.Reason}"); Console.WriteLine($"WebSocket closed: session={ID}, code={e.Code}, reason={e.Reason}");
base.OnClose(e); base.OnClose(e);
} }
protected override void OnError(ErrorEventArgs e) protected override void OnError(ErrorEventArgs e)
{ {
Console.WriteLine($"WebSocket error: session={ID}, message={e.Message}"); Console.WriteLine($"WebSocket error: session={ID}, message={e.Message}");