N'oubliez pas de voir quelques discussions sur ce temps de retour, mais n'a rien entendu depuis. Donc, fondamentalement, êtes-vous capable de vous abonner à un iobservable sur une machine distante? P>
7 Réponses :
Il n'y a aucune raison pour qu'un cadre ne puisse être conçu pour le faire. Le cadre devrait fournir un moyen d'adresser des objets distants, générer des mandataires pour eux, puis fermez l'activité de l'objet distant dans les limites de l'application (c'est-à-dire via la communication de la prise). .NET Remoting peut être une option appropriée pour la mise en œuvre. WCF serait encore meilleur. P>
Ainsi, lorsque le frameworc est en ce moment, vous ne pouvez pas simplement appeler un serveur distant et obtenir un iobservable et vous abonner à celui-ci? Ce qui a du sens, car Rx aurait besoin de savoir où et comment faire ces rappels et ne peut sûrement pas comprendre par magie ceux-ci par lui-même! MDR
Vous pouvez utiliser iobservable.Remotable pour utiliser des observables directement à partir d'autres machines via .NET Remoting. P>
Salut Paul, avez-vous un lien vers un article de quelque sorte qui explique ce que c'est et comment cela fonctionne?
msdn.microsoft.com/en-us/library/kwdt6w2k (Vs.71) .aspx décrit le rachat - Sachez cependant que la télécommande a des mises en garde assez importantes en matière de version vitale (c.-à-d. L'ordinateur A a la construction 1004 et l'ordinateur B a 1007 => App est cassé)
merci, j'espérais en fait des exemples de iobservable.Remotable, car je ne l'ai pas rencontré avec la version précédente de Rx :-p le trouva de toute façon, sur la vidéo Channel9, j'ai posté ci-dessous
Êtes-vous spécifiquement tenu d'utiliser RX comme solution à votre problème? WCF fournit des services en duplex, qui ont la capacité des clients d'enregistrer des points de terminaison de rappel à un service. Le service peut alors initier des appels à ses clients si nécessaire. C'est effectivement un motif observateur reculé. Si RX est un must, alors il devrait être assez étroitement détroit d'envelopper les services duplex WCF avec un cadre de support RX, permettant à vos clients de «transparence» d'observer le comportement de service avec Iobservable. P>
Nous ne sommes pas tenus d'utiliser RX comme solution, explorez simplement différentes possibilités. Un service de WCF en duplex s'est également apparu mais serait agréable de pouvoir utiliser RX pour gérer des événements composites plus complexes.
a trouvé cette vidéo cool sur le canal 9 qui un exemple d'utilisation iobservable.remotable em> comme Paul a souligné: p>
Stuff très intéressant, va passer un peu de temps à jouer avec ça maintenant! :-D p>
Oui. P>
RX a un support intégré pour l'utilisation à .NET Remoting limites de processus transversaux. P>
Si vous installez le package NuGet Pour démonstration du code de Microsoft, voir RX l'ensemble des processus. Je viens de tester le code sur cette page, et il fonctionne bien. Pour le compiler, vous devrez ajouter les références suivantes: p>
Le canal 9 vidéo mentionné par @theburningmonk est également intéressant de regarder. P>
Mise à jour strong> p>
Unfortuantely, cette solution a une grande limitation: vous ne pouvez avoir qu'un seul processus client écoute (tous les clients suivants peuvent pas se connecter). Pushqa résout ce problème (voir mon autre réponse). Pour l'essentiel, toute bibliothèque qui met en œuvre RX sur un bus de signalisation pub / sous devrait faire l'affaire. P> rx-remoting code>, il installera l'ensemble
System.Reactive.Runtime.Remoting.dll code> qui prend en charge les messages RX inter-processus . p>
Reactive Extensions - Bibliothèque principale code> (recherche
réactive extensions principal code>) li>
Reactive Extensions - .NET Remoting support code> (recherche de code < > extensions réactif accès distant code>) li>
System.Runtime.Remoting code> (ajouter comme référence normale, livré avec assemblage .NET) li>
ul>
oui. p>
Vérifiez Pushqa . P>
p>
Une autre solution possible pourrait consister à utiliser des canaux nommés. P>
Il y a un excellent package NuGet NamedPipeWrapper , voir le source sur GitHub. Il serait facile d'écrire un wrapper mince RX sur ce, à savoir vous abonner au flux RX et pousser les messages à d'autres processus d'écoute .NET à l'aide de cette bibliothèque. P>
Comme celui-ci utilise la solution pipes nommés, ce serait une véritable solution pub / sous qui soutiendrait les abonnés multiples dans différents processus. P>
Mise à jour strong> p>
Il est en effet très facile d'écrire du code simple pont RX sur la bibliothèque de canaux nommés. Utilisez un RX Mise à jour strong> p>
Pour plus d'informations sur les canaux nommés, consultez .NET 3.5 Adds Les canaux nommés et assistance Interprocess Communication En utilisant .NET 3.5 canaux nommés IO a>. Le paquet précité NuGet Objet code> et insérer le code de pont RX dans les gestionnaires d'événements. Ses pas plus de 4 lignes de code supplémentaires aux deux extrémités. Je peux afficher le code si quelqu'un est intéressé. P>
NamedPipeWrapper code> est une version beaucoup plus agréable de la prise en charge intégrée pour des canaux nommés que Framework 3.5 introduit. P>