parsing Data then identify the connected client then pass data to him , WCF or Sockets ?

let me describe the scenario here as simple as i can .

1- we have a lot of data sources ( UDP , htpp , TCP ) whatever we got a data with a specific format and we change this formats to our protocol .

2- we have many clients connected to server , and every clients is interested in a subset of data "not whole data ".

3- when  data is ready and converted to our protocol( which mean parsing + building msgs) , we have to check which client is interested to this data and we will send it to it ( then the client will pars the msg and convert the data to parameters ( about 20 parameters ) , and process it ) .

ok maybe a lot is asking are you describing a problem or system , actually this a system is already built using vb6 and using sockets which mean its is single threaded system , we are in progress to upgrade this system to .net and i'm doing a search to determine if we keep using sockets or using wcf , so i'm asking all your opinion considering the above design.
esam_rabbaaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bob LearnedCommented:
Do your client cross network boundaries, or are they all internal calls?
0
esam_rabbaaAuthor Commented:
all  over  internet
0
ambienceCommented:
How about Websockets? Interestingly, I looked at the following Xsockets.NET sample recently and you can see the idea of different clients interested in different data subscribing to it

http://xsockets.net/api/guides/xsockets-sample-stockticker

This sample is for an ASP MVC webapplication, however XSockets can be hosted in a standalone application and also has native Client library so data can be consumed natively as well as from any client that supports Websockets.
0
Angular Fundamentals

Learn the fundamentals of Angular 2, a JavaScript framework for developing dynamic single page applications.

ambienceCommented:
By native I meant a wrapper client over Websockets protocol
0
esam_rabbaaAuthor Commented:
ok  ,  I  may  not  be  clear  enough  ,  the  server  is  a windows  application  ,  and  we  need  to recreate  it  as windows  application  ,  coz  the  the  datasource  maybe not be  compatible  with web  (  maybe  udp  ) my question  is  ,  which  better  to  us  to  create  it  ,  WCF  or  sockets  ,  and  also  the clients  will  be  windows  applications  not  web  based  pages  .
0
Bob LearnedCommented:
If you are crossing network boundaries, web services are a good choice.  They don't always fit every requirement, though, and I am not sure if WCF would support your needs fully, so I would suggest doing a little prototype web service to determine if it is possible.
0
ambienceCommented:
What is a datasource in your definition, it sounds more like a data consumer after reading your last comment. Im assuming a data source is a source and not a consumer of data. In that case it can be anything, Xsockets is the comm between clients and server.

You didn't read this part maybe?

"however XSockets can be hosted in a standalone application"

XSockets is just a toolkit for Websockets and whether you host it in web or windows application or even a service is up to you. Since you are targeting Internet, web/HTTP protocols play better with firewalls and NATs.
0
ambienceCommented:
Also, an important decision factor is whether the clients should make frequent connections for getting data (pull/polling) or stay connected and obtain real-time partial updates (push). The answer would greatly affect the choice of technologies.

I kind of assumed the later would make more sense, and therefore recommended Websockets. If it doesnt make sense then WCF is still going to be much better than plain sockets based implementation.

I should also mention that leaving out Web API out of the equation is probably injustice especially with polling based approaches. More so, if you are going to use .NET 4.5 and above.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
esam_rabbaaAuthor Commented:
clients  are windows  based  application  ,  and  the  way that we  use  is push  data not  polling  ,  and  client  side  already implemented using  .net framework  4 ,  but  making  it  using  web sockets ?!! its  not  making  senses to me  actually .
0
Bob LearnedCommented:
If you are pushing data to the client, then WCF web services are not a very good choice.  It would be better to use web services if the client was pulling, not pushing.
0
ambienceCommented:
If it still doesn't make sense then disregard it, there are other ways, I don't want to describe the same thing several times asking to read comments objectively. There are obviously things that you know and others dont.
0
younghvCommented:
I've requested that this question be closed as follows:

Accepted answer: 250 points for Bob Learned (TheLearnedOne)'s comment #a39570904
Assisted answer: 250 points for Bob Learned (TheLearnedOne)'s comment #a39571007

for the following reason:

This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
ambienceCommented:
@younghv: Really? so the accepted solution comprises following?

"If you are crossing network boundaries, web services are a good choice"

the other one says

"If you are pushing data to the client, then WCF web services are not a very good choice."

I would like to know the basis on which both these comments qualify while other don't?

I'm surprised at your judgement.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.