created centralized UDP Listener
This commit is contained in:
@ -44,6 +44,15 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
private float _lastUpdateTime;
|
||||
private InputAction _toggleAction;
|
||||
|
||||
// Packet tracking for enhanced debugging
|
||||
private System.Collections.Generic.Queue<string> _packetLog = new System.Collections.Generic.Queue<string>();
|
||||
private const int MAX_PACKET_LOG = 15;
|
||||
private int _lastAudioSentCount = 0;
|
||||
private int _lastAudioReceivedCount = 0;
|
||||
private int _lastSpeechSentCount = 0;
|
||||
private int _lastSpeechReceivedCount = 0;
|
||||
private float _lastRateCheckTime = 0f;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_mainCamera = Camera.main;
|
||||
@ -126,7 +135,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
panelImage.color = new Color(0, 0, 0, 0.85f);
|
||||
|
||||
RectTransform panelRect = _panel.GetComponent<RectTransform>();
|
||||
panelRect.sizeDelta = new Vector2(800, 900);
|
||||
panelRect.sizeDelta = new Vector2(900, 1200); // Increased size for more info
|
||||
|
||||
// Create text
|
||||
GameObject textObj = new GameObject("DebugText");
|
||||
@ -148,7 +157,7 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
|
||||
// Setup canvas transform for VR
|
||||
RectTransform canvasRect = _canvas.GetComponent<RectTransform>();
|
||||
canvasRect.sizeDelta = new Vector2(800, 900);
|
||||
canvasRect.sizeDelta = new Vector2(900, 1200);
|
||||
canvasRect.localScale = Vector3.one * 0.001f; // Scale down for VR viewing
|
||||
}
|
||||
|
||||
@ -237,6 +246,10 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
sb.AppendLine($"Time: {DateTime.Now:HH:mm:ss}");
|
||||
sb.AppendLine();
|
||||
|
||||
// Port Binding Status
|
||||
AppendPortBindingStatus(sb);
|
||||
sb.AppendLine();
|
||||
|
||||
// Peer Discovery Status
|
||||
AppendPeerDiscoveryStatus(sb);
|
||||
sb.AppendLine();
|
||||
@ -257,12 +270,54 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
AppendSpeechReceiverStatus(sb);
|
||||
sb.AppendLine();
|
||||
|
||||
// Packet Rates
|
||||
AppendPacketRates(sb);
|
||||
sb.AppendLine();
|
||||
|
||||
// Event Log
|
||||
AppendEventLog(sb);
|
||||
sb.AppendLine();
|
||||
|
||||
// Packet Log
|
||||
AppendPacketLog(sb);
|
||||
|
||||
_debugText.text = sb.ToString();
|
||||
}
|
||||
|
||||
private void AppendPortBindingStatus(StringBuilder sb)
|
||||
{
|
||||
sb.AppendLine("🔌 PORT BINDING STATUS");
|
||||
|
||||
// Check if shared listener is active
|
||||
bool sharedListenerActive = SharedUDPListener.Instance != null && SharedUDPListener.Instance.IsListening;
|
||||
|
||||
if (sharedListenerActive)
|
||||
{
|
||||
sb.AppendLine($"✅ Shared UDP Listener ACTIVE");
|
||||
sb.AppendLine($" Port: {SharedUDPListener.Instance.ListenPort}");
|
||||
sb.AppendLine($" Total Packets: {SharedUDPListener.Instance.TotalPacketsReceived}");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendLine($"❌ Shared UDP Listener NOT FOUND!");
|
||||
sb.AppendLine($" Add SharedUDPListener to scene!");
|
||||
}
|
||||
|
||||
// Check which components are subscribed
|
||||
bool discoveryActive = _peerDiscovery != null;
|
||||
bool audioReceiverActive = _audioReceiver != null;
|
||||
bool speechReceiverActive = _speechReceiver != null;
|
||||
|
||||
sb.AppendLine($"Discovery: {(discoveryActive ? "✅ SUBSCRIBED" : "❌ NOT FOUND")} (0x44495343)");
|
||||
sb.AppendLine($"Audio RX: {(audioReceiverActive ? "✅ SUBSCRIBED" : "❌ NOT FOUND")} (0xC0A1)");
|
||||
sb.AppendLine($"Speech RX: {(speechReceiverActive ? "✅ SUBSCRIBED" : "❌ NOT FOUND")} (0xC0A3)");
|
||||
|
||||
if (!sharedListenerActive)
|
||||
{
|
||||
sb.AppendLine("⚠️ CRITICAL: No shared listener!");
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendPeerDiscoveryStatus(StringBuilder sb)
|
||||
{
|
||||
sb.AppendLine("🔍 PEER DISCOVERY");
|
||||
@ -506,13 +561,99 @@ namespace Convai.Scripts.Runtime.Multiplayer
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendPacketRates(StringBuilder sb)
|
||||
{
|
||||
sb.AppendLine("📊 PACKET RATES (last second)");
|
||||
|
||||
float currentTime = Time.time;
|
||||
float deltaTime = currentTime - _lastRateCheckTime;
|
||||
|
||||
if (deltaTime >= 1f)
|
||||
{
|
||||
// Calculate rates
|
||||
int audioSentDelta = 0;
|
||||
int audioReceivedDelta = 0;
|
||||
int speechSentDelta = 0;
|
||||
int speechReceivedDelta = 0;
|
||||
|
||||
if (_audioSender != null)
|
||||
{
|
||||
audioSentDelta = _audioSender.TotalPacketsSent - _lastAudioSentCount;
|
||||
_lastAudioSentCount = _audioSender.TotalPacketsSent;
|
||||
}
|
||||
|
||||
if (_audioReceiver != null)
|
||||
{
|
||||
audioReceivedDelta = _audioReceiver.TotalPacketsReceived - _lastAudioReceivedCount;
|
||||
_lastAudioReceivedCount = _audioReceiver.TotalPacketsReceived;
|
||||
}
|
||||
|
||||
if (_speechSender != null)
|
||||
{
|
||||
speechSentDelta = _speechSender.TotalClipsSent - _lastSpeechSentCount;
|
||||
_lastSpeechSentCount = _speechSender.TotalClipsSent;
|
||||
}
|
||||
|
||||
if (_speechReceiver != null)
|
||||
{
|
||||
speechReceivedDelta = _speechReceiver.TotalClipsReceived - _lastSpeechReceivedCount;
|
||||
_lastSpeechReceivedCount = _speechReceiver.TotalClipsReceived;
|
||||
}
|
||||
|
||||
_lastRateCheckTime = currentTime;
|
||||
|
||||
// Log significant activity
|
||||
if (audioSentDelta > 0)
|
||||
LogPacketActivity($"Sent {audioSentDelta} voice packets (0xC0A1)");
|
||||
if (audioReceivedDelta > 0)
|
||||
LogPacketActivity($"Received {audioReceivedDelta} voice packets (0xC0A1)");
|
||||
if (speechSentDelta > 0)
|
||||
LogPacketActivity($"Sent {speechSentDelta} speech clips (0xC0A3)");
|
||||
if (speechReceivedDelta > 0)
|
||||
LogPacketActivity($"Received {speechReceivedDelta} speech clips (0xC0A3)");
|
||||
}
|
||||
|
||||
sb.AppendLine($"Voice Sent: {(_audioSender != null ? _audioSender.TotalPacketsSent : 0)} total");
|
||||
sb.AppendLine($"Voice Received: {(_audioReceiver != null ? _audioReceiver.TotalPacketsReceived : 0)} total");
|
||||
sb.AppendLine($"Speech Sent: {(_speechSender != null ? _speechSender.TotalClipsSent : 0)} clips");
|
||||
sb.AppendLine($"Speech Received: {(_speechReceiver != null ? _speechReceiver.TotalClipsReceived : 0)} clips");
|
||||
}
|
||||
|
||||
private void LogPacketActivity(string message)
|
||||
{
|
||||
string timestamp = DateTime.Now.ToString("HH:mm:ss");
|
||||
_packetLog.Enqueue($"[{timestamp}] {message}");
|
||||
|
||||
while (_packetLog.Count > MAX_PACKET_LOG)
|
||||
{
|
||||
_packetLog.Dequeue();
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendPacketLog(StringBuilder sb)
|
||||
{
|
||||
sb.AppendLine("📦 PACKET ACTIVITY LOG");
|
||||
|
||||
if (_packetLog.Count > 0)
|
||||
{
|
||||
foreach (var entry in _packetLog)
|
||||
{
|
||||
sb.AppendLine(entry);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendLine("No packet activity yet");
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendEventLog(StringBuilder sb)
|
||||
{
|
||||
sb.AppendLine("📋 EVENT LOG");
|
||||
sb.AppendLine("📋 CONNECTION EVENTS");
|
||||
|
||||
if (_peerDiscovery != null && _peerDiscovery.EventLog.Count > 0)
|
||||
{
|
||||
int startIndex = Math.Max(0, _peerDiscovery.EventLog.Count - 8);
|
||||
int startIndex = Math.Max(0, _peerDiscovery.EventLog.Count - 6);
|
||||
for (int i = startIndex; i < _peerDiscovery.EventLog.Count; i++)
|
||||
{
|
||||
sb.AppendLine(_peerDiscovery.EventLog[i]);
|
||||
|
||||
Reference in New Issue
Block a user