Question

Tooday J'utilise ServiceHost pour l'auto d'hébergement cervices WCF.

Je veux accueillir près de mes services WCF mon programm TCP pour les opérations de prises directes (comme privilège à une sorte de flux TCP de diffusion)

J'ai besoin de contrôle sur les espaces de noms d'URL (donc je serais en mesure de laisser mes clients d'envoyer des flux TCP directement dans mon service à l'aide de belles URL comme example.com:port/myserver/stream?id=1 ou example.com: port / myserver / flux? id = quoi que ce soit et que je ne serai pas pris la peine avec l'idée de 1 client pour 1 prise à un moment de temps, je veux vraiment garder mes services WCF sur le même port que mon propre serveur ou ce qu'il est afin de pouvoir appeler www.example.com:port/myWCF/stream?id=222 ... et je veux que cela fonctionne sur tout port - non seulement 80)

Quelqu'un peut-il me corps s'il vous plaît aider?

Je suis tout simplement en utilisant WCF maintenant. Et je n'aime pas comment cela fonctionne. C'est l'un des nombreux resons pourquoi je veux commencer la migration vers TCP clear =)

Je ne peux pas utiliser la liaison nette tcp ou toute sorte d'autres WS- * frais de liaison (tooday j'utilise celui pour que mes simpliest clients comme Flash, AJAX, etc me connecter à facilement).

Je avais besoin rapide et facile dans le protocole de connexion implemrnting comme celui que je crée l'utilisation de l'avant avec douilles pour ammount de salut en temps réel des données de transfering.

.. Des idées? S'il vous plaît - je besoin d'aide

.
Était-ce utile?

La solution

Si votre problème avec WCF est la performance alors vous devriez essayer le TCP net binaire de liaison pour éliminer sérialisation XML pour améliorer les performances.

Certaines applications à fort trafic, comme les jeux en temps réel, utilisent le protocole UDP pour la majorité de la communication car il coupe à travers le protocole. Avec TCP vous obtenez la commande et la fiabilité construit, mais cela se fait au détriment de la performance car il retardera implicitement des paquets d'attendre de paquets de commande afin qu'il puisse les remettre à l'application dans le bon ordre, ou attendre les paquets perdus être renvoyé. vous pouvez plutôt utiliser UDP et mettre en œuvre votre propre système de vérification des données est moins stricte que TCP.

Il y a des options disponibles pour UDP WCF, ou vous pouvez mettre en œuvre votre propre. WCF est rien de plus qu'une pompe de message, et vous pouvez remplacer les différentes étapes avec tout ce que vous voulez.

Autres conseils

Eh bien, si vous allez descendre à des prises pures, vous pourriez aussi bien faire votre acte de service en tant que proxy. Faire services WCF écouter sur un autre port, et votre application sur le port souhaité. Lorsque vous recevez demande dans votre application, analyser manuellement en-tête et vérifier la météo il est destiné à votre service ou service WCF. Si elle est destinée au service WCF, ouvrir une connexion TCP au service WCF et de transmettre les données reçues, puis il suffit de passer en arrière la réponse de WCF au client ..

D'autre part, vous pouvez accélérer WCF tout à fait beaucoup en écrivant votre propre coutume liant. Beaucoup de temps WCF desserre sur sérialisation qui est fait en utilisant la réflexion (qui est lent), contournant cela améliorerait considérablement votre vitesse.

Je ne sais pas si cela vous aidera ou non, mais essayez de votre service de partage de Net TCP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top