2013-02-07 1 views
0

Lorsqu'un service fonctionne avec un duplex obligatoire dans WCF, vous pouvez le faire dans une opération:Comment GetCallbackChannel() fonctionne sur un canal wcf duplex?

OperationContext.Current.GetCallbackChannel<IClientReceiver>() 

pour obtenir une référence à l'appelant. Quelle est cette référence? Je veux dire, on dirait qu'il fait de la magie voo-doo. Qu'est-ce qui se passe dans les coulisses qui permet au service d'envoyer un message au client?

Et comment cela fonctionne différemment sur une liaison TCP par rapport à la liaison http duplex? Parce que je comprends TCP peut rappeler nativement au client, mais http ne peut pas ainsi, il doit créer un deuxième canal sur le côté serveur pour appeler le client.

Répondre

2

Sur le WSDualHttpBinding, il existe actuellement deux connexions HTTP: une du client au serveur, une du serveur au client. GetCallbackChannel<T> renverra une référence à un canal qui sait comment envoyer des messages au client, et, comme vous l'avez souligné, dépend du transport sous-jacent.

+0

Merci carlosfigueira. Comment la liaison TCP effectue-t-elle des rappels si elle ne crée pas de deuxième canal comme HTTP? Savez-vous? – Trevor

+0

TCP est déjà un canal bidirectionnel, donc aucun canal supplémentaire n'est nécessaire pour cela. TCP est juste une couche de réflexion sur les sockets raw, qui sont en full duplex. – carlosfigueira

Questions connexes