2013-07-28 15 views
15

Sto provando a eseguire il debug di un hub SignalR e ho notato che il costruttore viene richiamato più volte, anche con un singolo client. È questo il comportamento previsto? Mi aspettavo che il costruttore venisse chiamato una sola volta per l'inizializzazione della classe, ma sto colpendo il mio punto di interruzione più volte.Quando viene chiamato il costruttore di hub SignalR?

+0

non sicuro, ma penso che sia uno nuovo su ogni richiesta – MEYWD

risposta

17

In caso SignalR Hub verrà creato per ogni richiesta. Quindi non importa se c'è un solo cliente o più. Infatti Hub è un'astrazione su PersistentConnection, se vuoi un controllo più preciso sulle cose che accadono dietro la scena puoi usare PersistentConnection. Controlla qui: https://github.com/SignalR/SignalR/wiki/PersistentConnection

+2

Anche più di questo. Una volta per invocazione che può essere più che per richiesta (nel caso di websocket) – davidfowl

5

Come correttamente indicato in incognito, SignalR crea una nuova istanza dell'hub per ogni richiesta. È necessario utilizzare membri statici per archiviare le informazioni desiderate nell'hub per tutte le richieste. Se si desidera eseguire alcune operazioni ogni volta che un nuovo client si connette all'hub, è necessario inserire tale codice in OnConnected.

Problemi correlati