2 votes

Le client SignalR .NET ne peut pas s'abonner aux événements du serveur

J'essaie d'utiliser SignalR dans un client .NET. Je parviens à me connecter avec succès, mais rien ne se passe lorsque j'essaie de m'abonner aux événements. Je ne parviens pas à recevoir les messages envoyés par le serveur. Je suis très novice dans ce domaine et je ne sais donc pas si j'ai oublié quelque chose ou si mon code est erroné.

        var hubConnection = new HubConnection(<url>);

        // Hub name from dev code
        var proxy = hubConnection.CreateHubProxy("pidHub");

        // Subscribing to all the events
        proxy.On("SendTransactionUpdate", () => Logger.LogInformation("SendTransactionUpdate ************************"));
        proxy.On("SendMessage", () => Logger.LogInformation("SendMessage ************************"));
        proxy.On("UpdateStatus", () => Logger.LogInformation("UpdateStatus ************************"));
        proxy.On("TransactionUpdate", () => Logger.LogInformation("TransactionUpdate ************************"));

        // This block executes fine
        hubConnection.Start().ContinueWith(task =>
        {
            if (task.IsFaulted)
            {
                Logger.LogInformation("There was an error opening the connection: {0}" + task.Exception.GetBaseException());
            }
            else
            {
                Logger.LogInformation("Connected. *********");
            }
        }).Wait();

        // Call Provision GUID API and returns a valid GUID
        <call API>

        // Downloads EXE on machine
        <download EXE code>

        // Run EXE with -d option
        // EXE uploads results back to the server and server returns some messages through SignalR
        // I want to capture these messages
        <execute EXE on machine>

0voto

Ran Points 618
  1. Vous pourriez vouloir vous abonner à l'événement sur la continuation de la tâche lorsque la tâche n'est pas en défaut.
  2. Si vous avez réussi à vous connecter au serveur, vous pouvez utiliser fiddler pour tracer les messages du serveur.
  3. Assurez-vous que votre gestionnaire d'événements contient des paramètres, s'il y en a, pour l'argument envoyé par le serveur. Votre application peut recevoir les messages mais les traiter de manière incorrecte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X