Client-Methode kann nicht vom Server aufgerufen werden

dantdj

Ich versuche, SignalR zu verwenden, um eine Nachricht vom Server an den Client zu senden, ohne dass der Client die Nachricht auslöst. Aus Tutorials, die ich gesehen habe, definieren Sie eine Methode im Client wie folgt:

signalRConnection.client.addNewMessage = function(message) {
  console.log(message);
};

sollte die Verwendung des folgenden Hub-Codes auf dem Server ermöglichen:

public async Task SendMessage(string message)
{
     await Clients.All.addNewMessage("Hey from the server!");
}

Der Clients.All.addNewMessageAufruf verursacht jedoch einen Fehler im C#-Compiler:

'IClientProxy' enthält keine Definition für 'addNewMessage' und es konnte keine zugängliche Erweiterungsmethode 'addNewMessage' gefunden werden, die ein erstes Argument vom Typ 'IClientProxy' akzeptiert (fehlen Sie eine using-Direktive oder einen Assemblyverweis?)

Wie behebe ich das? Der Servercode ist im Hub enthalten.

TanvirArjel

Dies liegt daran, dass Sie ASP.NET Core SignalR verwenden, aber die Clientmethode nach ASP.NET MVC SignalR aufrufen . In ASP.NET Core SignalR müssen Sie die Clientmethode wie folgt aufrufen:

public async Task SendMessage(string message)
{
     await Clients.All.SendAsync("AddNewMessage", message); // here `AddNewMessage` is the method name in the client side.
}

Es zeigt Ihren clientseitigen Code auch für ASP.NET MVC SignalR. Für ASP.NET Core SignalR sollte es wie folgt aussehen:

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();

connection.on("AddNewMessage", function (message) {
    // do whatever you want to do with `message`
});

connection.start().catch(function (err) {
    return console.error(err.toString());
});

Und in der StartupKlasseneinstellung SignalRsollte wie folgt sein:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        services.AddSignalR(); // Must add this
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

        app.UseSignalR(routes =>
        {
            routes.MapHub<ChatHub>("/chatHub"); // Here is configuring for `ChatHub`
        });

        app.UseMvc();
    }
}

Bitte befolgen Sie dieses Tutorial Erste Schritte mit ASP.NET Core SignalR, wenn weitere Probleme auftreten.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Methode kann nicht vom Konstruktor aufgerufen werden

Die zurückgegebene Methode kann nicht vom Instanznamen aufgerufen werden

Client-Methode kann in OnDisconnected nicht aufgerufen werden

"Wert vom Nichtfunktionstyp kann nicht aufgerufen werden"

Methode kann nicht mit einer Argumentliste vom Typ in Swift aufgerufen werden

GET-Methode kann nicht vom anderen Docker-Container aufgerufen werden (HTTP 500)

Methode in Main () kann nicht aufgerufen werden?

Methode kann in Python nicht aufgerufen werden

freeopcua python, Methode kann nicht aufgerufen werden

Methode kann nicht von Klasse aufgerufen werden

Methode kann in einem Gem nicht aufgerufen werden

Wert vom Nichtfunktionstyp 'String' kann nicht aufgerufen werden

Wert vom Nichtfunktionstyp '[UIImage] kann nicht aufgerufen werden

AnimateWithDuration kann nicht mit einer Argumentliste vom Typ aufgerufen werden

Funktion kann nicht mit einer Argumentliste vom Typ '()' aufgerufen werden

Eine Aktion kann nicht vom Effekt aufgerufen werden

'DataTask' kann nicht mit einer Argumentliste vom Typ aufgerufen werden

Alamofire: Wert vom Nichtfunktionstyp 'NSHTTPURLResponse?' Kann nicht aufgerufen werden.

Ein Wert vom Nichtfunktionstyp DateCallBack kann nicht aufgerufen werden

Swift 3 - Wert vom Nichtfunktionstyp 'XCUIElement' kann nicht aufgerufen werden

ReactNative - Funktion kann nicht vom nativen Modul aufgerufen werden

Codenameone: Dienst kann nicht vom Simulator aus aufgerufen werden

'MethodName' kann nicht mit einer Argumentliste vom Typ aufgerufen werden

Wert vom Nichtfunktionstyp UITableView kann nicht aufgerufen werden

Wert vom Nichtfunktionstyp 'UIScreen' kann nicht aufgerufen werden

'RequestAuthorizationToShareTypes' kann nicht mit einer Argumentliste vom Typ aufgerufen werden

$ Funktion kann nicht mit Objekt vom Typ * aufgerufen werden

javaScript-Objektvariable kann nicht vom Objekt aufgerufen werden

Eine Aktion kann nicht vom Effekt aufgerufen werden

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv