2009-11-14 3 views
6

Je voudrais savoir s'il existe un moyen d'écrire un serveur comète en C#. J'ai un code C# qui génère des données périodiquement, et je veux pousser ces données vers une application Java. Donc, je voudrais convertir mon code C# en un serveur comète. J'aimerais également savoir s'il existe un serveur de comète implémenté qui nous permet de connecter l'application C# et l'application java, afin que l'application C# puisse transmettre des informations à l'application java, via le serveur comète. la fréquence de poussée des données serait élevée, mais la taille d'un message individuel est très petite: une valeur de chaîne.Implémenter un serveur Comet en C#

+0

Ceci est un travail de recherche individuel, donc ne peut pas se permettre tous les produits commerciaux. Le produit commercial 'hub hub' a une bonne implémentation d'un serveur comète, mais les fonctionnalités dont j'ai besoin ne sont pas disponibles dans leur édition gratuite. – sura

Répondre

5

Allons-y.

Je suppose que c'est un suivi à cette question: communication between Java and C#

Ceci est l'application à la communication de l'application sur la même machine avec des chaînes comme la seulement charge utile, non?

Pourquoi COMET? Pourquoi ne pas simplement envoyer des chaînes terminées par null directement via une connexion socket? L'implémentation d'un serveur Comet est loin d'être triviale et n'est utilisée que dans les situations où une communication plus directe n'est pas autorisée (c'est-à-dire, serveur vers navigateur). Comet pour la communication d'application à l'application sur la même machine serait très complexe pour une solution qui est facilement résolue avec des sockets.

3

Cela peut certainement être fait, mais écrire un serveur comète en C# est une tâche assez complexe. Nous en avons construit un (WebSync), et cela a demandé pas mal d'efforts. Si vous êtes en train de faire un projet de recherche, vous pouvez utiliser la version OnDemand, qui est hébergée, et compte 10 utilisateurs libres. Pour l'instant, la version Serveur n'est pas gratuite, mais elle est plutôt bon marché ...

Pour ce que ça vaut, si vous décidez de rouler le vôtre, vous allez regarder le IHttpAsyncHandler, et vous ' Il est nécessaire d'effectuer une gestion des threads pour gérer les limites de pool de threads par défaut dans IIS.

+1

Si quelqu'un lit ceci, c'est un très bon produit. Regarde dedans. Vous ne le regretterez pas. – Dested

+0

Pouvez-vous utiliser WebSync On-Demand SDK pour consommer un serveur Comet tel que le serveur superfeedr? http://blog.superfeedr.com/websockets-and-comet/ – superlogical

+0

On dirait qu'ils ont leur propre implémentation sous le capot, donc vous n'auriez pas besoin de WSOD pour le consommer. WSOD pourrait être utilisé en conjonction avec elle, certes, mais ils construisent leur propre implémentation, en utilisant leur propre protocole; notez qu'ils mentionnent qu'il n'y a pas de protocole défini ... ce n'est pas tout à fait vrai, car la spécification de Bayeux est certainement disponible. (http://svn.cometd.com/trunk/bayeux/bayeux.html). En tant que tel, ils devront aussi avoir leur propre SDK. – jvenema

2

Vous aurez peut-être besoin d'un exemple de code source pour votre implémentation? PokeIn reverse ajax library était un projet open source et les codes source des versions antérieures étaient encore téléchargeables sur le site codeplex.

De toute évidence, la dernière version de la bibliothèque PokeIn est l'une des plus grandes bibliothèques pour le framework .Net et vous pouvez utiliser leur édition communautaire gratuite.

Questions connexes