Ho problemi a ottenere il codice Hub SignalR sul lato server per richiamare i metodi client JS. Il contrario funziona correttamente, quindi quando il mio cliente invia un messaggio al server viene consegnato come previsto. Sono stato abbastanza attento a evitare trappole evidenti, ma suppongo che stia ancora trascurando qualcosa. Ecco il mio codice:Metodi Client JS SignalR non richiamati
Da MessageHub.cs:
public bool SendMessage(ClientMessage message)
{
...
Clients.All.addMessage("my message");
...
}
Javascript:
$.connection.hub.start()
.done(function() {
messageHub = $.connection.message;
// addMessage is never invoked.
messageHub.client.addMessage = function (message) {
alert('message added');
};
/* // I tried this based on some sample code but still not invoked.
messageHub.addMessage = function (message) {
alert('message added');
};
*/
// This works as expected.
messageHub.server.registerUser(userId);
...
});
Come accennato in precedenza, non riesco a trovare le eventuali carenze evidenti con la messa a punto, ma qui sono alcuni punti potenzialmente rilevanti:
- La connessione viene stabilita e vengono richiamati i metodi sul lato server.
- È probabilmente irrilevante, ma ho provato a forzare diversi trasporti senza alcun cambiamento di comportamento.
- I nomi dei metodi client non sono in conflitto con i nomi dei metodi server in alcun punto.
- Ho anche provato a inviare messaggi a specifiche connessioni client (che in realtà è l'obiettivo, in questo caso).
- Ho la registrazione abilitata sia sul client che sul server ma non vedo nulla di rilevante in entrambi i casi.
Quindi, visto quanto sopra, mi manca qualcosa di ovvio? In caso contrario, qual è il modo migliore per identificare il punto di errore?
P.S. Questo non è specificamente correlato alla domanda, tuttavia, per qualche ragione, Fiddler non cattura più traffico da nessuno dei miei browser, il che rende il debugging del traffico WS o HTTP un po 'impegnativo - Immagino che sia una cosa di Windows 8 ..
hai salvato totalmente il mio giorno, ¡thx! – vfportero
Fantastico! Grazie mille! – Oleg
questo è un suggerimento molto importante !! mi hai salvato giorni :) grazie! –