Mit CefSharp ist ResourceHandlerFactory mit SignalR/WebSockets

Ich bin nach der Anleitung in der Antwort auf diese Frage, die zeigt, wie zu konfigurieren CefSharp mit einem ResourceHandlerFactory zu vermeiden, mit standard-OS network stack:

var browser = new ChromiumWebBrowser("<html file here>")
{
     ResourceHandlerFactory = myResourceHandlerFactory, //implements IResourceHandlerFactory                
};

Dies funktioniert gut für statische Dateien, aber ich bin nicht in der Lage zu handhaben WebSocket-Anfragen von SignalR. Sendet der client diese anfordert, aber Sie erscheinen nie in die GetResourceHandler Methode meiner IResourceHandlerFactory, die akzeptiert, dass alle anderen Anforderungen.

Wie kann ich mit der WebSocket-Anfragen von CefSharp in-memory-wie das?

Edit mit Lösung: Mit amaitland Vorschlag, ich war in der Lage zu implementieren ISchemeHandlerFactory abfangen WebSocket-Anfragen. Meine Cef-Initialisierung sieht nun wie folgt aus:

var settings = new CefSettings();
settings.RegisterScheme(new CefCustomScheme { SchemeName = "ws", SchemeHandlerFactory = new OwinSchemeHandlerFactory() });
Cef.Initialize(settings);

…und meine OwinSchemeHandlerFactory nur implementiert die Methode Create, die gibt ein IResourceHandler:

public IResourceHandler Create(IBrowser browser, IFrame frame, string schemeName, IRequest request)
{
    //return myResourceHandlerFactory.GetResourceHandler();
}
  • Funktioniert es für Allgemeine Anfragen? Auf eine Vermutung, die Sie verwenden müssen, eine ISchemeHandlerFactory und registrieren Sie sich für den ws – und/oder wss Systeme. Finden Sie die wichtigsten CefSharp Projekt für Beispiele.
  • Danke für den Hinweis mich in die richtige Richtung – das ist genau das, was ich suchte. Ich bin jetzt in der Lage, abzufangen WebSocket-Anfragen, die mit ISchemeHandlerFactory. (Ich bin mir nicht sicher, der beste Weg, dies zu tun, aber wenn Sie posten Sie Ihren Kommentar als eine Antwort, kann ich markieren Sie es als Antwort akzeptiert.)
  • Getan, fühlen Sie sich frei, um vorschlagen, die änderungen, die Sie denken, sind relevant.
InformationsquelleAutor Jay Harris | 2016-02-19



One Reply
  1. 1

    Wenn Sie eine ISchemeHandlerFactory Sie können sich ein Schema zum abfangen des ws – und/oder wss Systeme.

    • Toll, danke! Ich bearbeitet meine Frage, um einige der code, den ich verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.