title: C# Sockets vs NodeJS Socket.IO
body: <p>I have to develop a server application using TCP sockets for a game. I've been doing some research to see what technology fits my needs best, also with the help of SO.</p>
  
  <p>Currently I have two options left for my self. That is either creating a server application in C# with <code>SocketAsyncEventArgs</code> or with NodeJS and <code>Socket.IO</code>.</p>
  
  <p>My choice would go for NodeJS because I'd like to think that they already did all of the hard work and optimized their socket library a lot. So all I have to do is simply use it and perhaps tweak it a little bit.</p>
  
  <p>But my main question is, would NodeJS be good enough?</p>
  
  <p>The server needs to be a high performing socket application. I know I can get good results when I use C#. But is there really a huge difference between a C# Socket class or NodeJs Socket.IO? Should I expect less from NodeJS?</p>
  
  <p>I couldn't find any information about Winsock vs NodeJS/Socket.IO. So I'm hoping anyone here has any knowledge about these two. And what I could expect from the two when you compare them.</p>
  
  <hr>
  
  <p>Some additional information about what the server will be doing.</p>
  
  <p>The server will basically pass data from one client to another. The thing is that one client will send around <code>30</code> to <code>40</code> small packets (~300 bytes) to the server per second. The server will send each request to exactly one other client. But at the same time the other client will send the same amount of data per second back. </p>
  
  <p>The server is just some sort of mediator between two clients. At the same time, around 500 pairs of clients can be connected to the server. All sending data to each other through the server. That's why I need a good performing socket application. I think CPU would be no problem in my case since it won't be doing any heavy computations.</p>