Aber das Prinzip der Vorgehensweise wäre richtig?
Da du Paralelität erreicenh möchtest brauchst du ansich nicht selber mit Task Arbeiten, sondern kannst das von der Parallel-Klasse machen lassen. Du könntest dir dafür die Microsoft Dokumentation anschauen.
die ist in allen Tasks gleich, das ist seltsam.
Ansich ist das nichts seltsames, da du nirgends angibtst auf welches Kern die Task ausgeführt werden soll und die CLR oder CPU das verwalten. Meines Wissens nach kann man den Kern, aber auch nirgens angeben.
Sieht irgendwie so aus, als ob der ws.send(chunk) nichts sendet!
Da müsste eigentlich schon was gesendet werden, weil man dort 10 Logenträge sieht, die eben aussagen das Bytes gesendet wurde.
bringt mir nicht mal die
"Daten versandt."
Das ist wiederum seltsam, da beim ursprünglichen Code, die Loganweisungen direkt nach dem ws.Send(chunk)
ausgeführt wurden und jetzt irgendwie nicht.
Eigentlich müssten ja zumindest bei dem Versuch aus dem das Log ist Daten beim Server angekommen sein. Nur um ganz sicher zu gehen: Hast versuchst zu überprüfen ob die Daten per Websocket beim Server wirklich ankommen, also mithilfe eines minimalen lokalen Servers wie ich es probiert habe oder anderweitig?
Ich meine nicht die Server logs sondern die, die du mit der Log methode in deiner Anwendung anfertigst. Anhand von diesen Logs müsste ersichtlich sein ob die Audiodaten überhaupt gesendet werden was ja noch nicht ganz klar ist.
Die Logs habe ich jetzt schon mehr mals erwähnt, da diese helfen könnten den Fehler zu finden. Sind in den Logs nun überhaupt Einträge vorhanden, wie Sent ... bytes? Das würde ja schonmal helfen herauszufinden woran es jetzt genau liegt.
Angehangen ist die Program.cs des simplen servers den ich benutzt habe. Dieser sendet zwar keine Daten an den Client zurück sowie es der von dir Verwendete Service macht und loggt nur die Anzahl an empfangenen Bytes was ausreichen sollte um zu testen ob die Audiodaten übertragen werden.
Ich bin nun nicht ganz sicher ob mein Code im VS ein Problem auf meinen win11 ARM hat. Ich entwickele auf einem MacBook
Das das Betriebssystem das du verwendest könnte dabei schon eine rolle spielen, da solche NAudio native API's verwendet wobei eigentlich Exceptions ausgelöst werden müssten wenn das der Fall wäre. Bei DataAvailable loggst du doch auch die menge an gesenteten Bytes müsste dort dann nicht auch nachvollziehbar sein ob überhaupt etwas gesendet wird?
Ich habe das mal minimal mit einem Client der Audiodaten sendet und einem Server der diese per WebSocket entpfängt nachgestellt und das hat einwandfrei funktioniert. Den Teil mit einer Konfig, die gesendet wird habe ich zwar weggelassen, allerdings ist die Aufnahme und Sende Logik exakt dieselbe wie die von dir genutzte.
Ansonsten fällt mir nichts wirklich auf was mit dem Problem zutun haben könnte. Um den Fehler weiter könntest du die Logs nehmen, die du dort machst. Es wäre gut zu wissen ob laut den Logs die Daten gesendet werden oder nicht, außerdem könntest du mit einem Haltepunkt in DataAvailable schauen, ob dort alles funktioniert wie es soll.
Ansonsten zwei Anmerkungen generel zum Quellcode: 1. Beim OnMessage nutzt du einen dynamic als Typ was unnötig ist wenn man Betrachtet das Data ein string ist und Deserialize auch einen string nimmt. 2. In DataAvailable nutzt du LINQ um den Chunk an data zusammen zustellen, was nicht effizient ist. Bei dem LINQ ansatz wird jedes einzelne der array Item duchgegangen. Stattdessen kann man Spans nutzen, die auf einen Bereich innerhalb des arrays verweisen. Man würde so eigentlich auch um das erstellen eines zweiten Chunk array drumherum kommen, allerdings unterstützt WebSocketSharp dies nicht.
Jetzt bin ich schon etwas vom eigentlichen Thema abgeschweift... Jedenfalls kann ich da ich nicht den gesamten Code geschweigedenn zugriff auf diesen Transkripierungs Service habe deine Bedingungen nur begrenzt nachstellen und den Rest müsstest du mithilfe von Debuggen oder mehr logging herausfinden. Eventuell kann man dir hier noch bei der deutung von den Logs oder beim Debuggen helfen.
Es wäre hilfreich wenn du denn Code / einen Link zur repo posten könntest, damit man dir besser helfen kann.
Ohne konkreten Code oder eingrezung des Fehlers kann man nur raten wo das Problem sein könnte. Der Fehler muss ja nicht unbedingt beim hochladen per WebSocket sein sondern es könnte vllt. auch sein das es schon beim Aufnehmen nichts kommt.
lg Suiram1
Guten Tag, Meine Frage ist ob es irgendwie möglich ist in Blazor einen Circuit anhand seiner Id zu schließen. Auf GitHub habe ich zwar im Source-Code von Blazor in der CircuitRegistry-Klasse eine Möglichkeit gefunden dies zu tun nur leider ist diese Klasse und weitere zugegörigen Klassen internal. Eine Möglichkeit die ich gefunden habe wäre in der CreateInboundActivityHandler-Methode eines CircuitHandlers eine Exception zu werfen, allerdings wird die Verbindung dabei quasi "still" unterbrochen da der Client dabei nicht die übliche Meldung anzeigt das er die Verbindung zum Server verloren hat. Kennt jemand vllt. ein weg die Verbindung "ordentlich" zu trennen?
Aufrufen kannst du diese einfach mit
FormFunctions.CornerForm(param1, param2, param3);
Wenn du mit FormLoad-Prozedur das event Load
einer Form meinst kannst du im Konstruktor nach InitializeComponent();
folgendes schreiben:
Load += (sender, e) => FormFunctions.CornerForm(param1, param2, param3);
Die Meldung drückt den Fehler schon komplett aus. Man müsste die Methode in eine Klasse verschieben und gegebenenfalls Referenzen zu dieser korrigieren. Nun stellt sich mir allerdings noch die Frage ob das die einzigste Fehlermeldung ist, da wenn die Methode irgendwo im VB Code verwendet wurde auch weitere Fehler angezeigt werden müssten, da die Methode so nicht gefunden werden kann.
In dem Projekt findet sich nichts, dass für die Erstellung von .padfx-Dateien verantwortlich ist. Von dem was man erkennen konnte lässt sich schließen das die Logik dafür in einem anderen Projekt ist. In dem angehangenen Projekt gibt es zwar so einige fehlende Projekte, allerdings wird der fehlende Code sehr wahrscheinlich in einem dieser Projekte sein:
Also soll ich einfach um keine Cookies mitzusenden für den Cookie Header der HttpRequestMessage einen leeren String setzen?
Etwas direkter ausgedrückt: Es möchte lediglich die Cookies die von dem Server per Header gesetzt wurden löschen.
Über den Weg der Reflection API hab ich auch schon nachgedacht allerdings Frag ich da lieber genauer nach ob es nicht eine möglichkeit gibt es so wie es gedacht ist umzusetzen.
Ich habe mich glaube ziemlich undeutlich ausgedrückt.
Als Kontext: Für einen Wrapper einer Web API muss ich die Cookies die von der Domain aus per Set-Cookie gesetzt wurden löschen, allerdings muss bei dem einzigen Weg den ich bisher dafür gefunden habe wie bereits im Code sichtbar dieHttpClient
Instanz mit dem Container erstellt werden. Jedoch soll der Wrapper nicht nur selber diese Instanz erstellen sondern auch eine bereits vorhandene Instanz verwenden können. Deshalb muss ich irgendwie allein von der HttpClient
Instanz aus auf den CookieContainer
zugreifen.
Hallo,
Ich suche nach einem Weg wie man von einerHttpClient
Instanz aus die durch den Set-Cookie Header gespeicherten Cookies löschen kann.
Ein Weg der funktioniert ist
CookieContainer cookies = new();
HttpClientHandler handler = new() { CookieContainer = cookies };
HttpClient client = new(handler);
// anfragen
cookies.SetCookies(new("https://example.com"), string.Empty);
Allerdings muss man dafür ja vorher die CookieContainer
Instanz deklarieren und mit dieser den Handler und anschließend den Client erstellen. Kennt jemand vielleicht eine Weg wie man die CookieContainer
Instanz oder die HttpClientHandler
Instanz vom HttpClient
abrufen kann?