What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 122 Stack Exchange communities.

What kind of sockets does Stack Overflow use for the realtime reputation updates? Is it something like Netty-Jetty, Solr or SignalR? Are they using web sockets implemented in C#?

share|improve this question
add comment

1 Answer

up vote 50 down vote accepted

We use a custom socket server that we developed in house. It supports every historic + RFC version of the web-sockets api; not just Hixie 76; hixie-76 === hybi-00; hybi-4/5/6/7/8, and hybi-13 === RFC6455. We treat sockets as a value add for those who use modern browsers and don't rely on it to provide all updates to our sites as websockets aren't supported in all browsers at this point.

We developed our own very simple protocol on top of websockets to provide rudimentary updates to question lists and as well as other interactions. We use redis messaging to support a unified messaging bus between all of our socket servers. The server side is a Windows service written in C# and the client side is jQuery.

There was talk of open sourcing our implementation but haven't reached a release yet. I have been very impressed with the load we've been able to handle thus far.

Edit by Marc: if people would be genuinely interested in our releasing this as open source, please let us know. It will take some effort. but isn't impossible.

Here's a snapshot of haproxy at the moment:

socket traffic

In case you're wondering - that is 128k simultaneously connected web socket clients all receiving updates via our unified messaging bus.

share|improve this answer
    
@marcgravell +1 for being genuinely interested –  Leland Richardson Feb 19 '13 at 17:25
    
@marcgravell +128k for being genuinely interested –  David Murdoch Feb 19 '13 at 17:25
2  
@marcgravell Very interested... assuming a vote on the "question" counts as a vote? –  Chris Feb 19 '13 at 17:38
3  
@marcgravell register my vote for genuine interest. –  Kyle Trauberman Feb 19 '13 at 17:40
3  
+1000 genuinely interested –  rossipedia Feb 19 '13 at 20:32
3  
We use redis messaging to support a unified messaging bus between all of our socket servers --- where can you find more information on that particular aspect? –  wal Feb 20 '13 at 1:06
    
@marcgavell count me in as well –  Wigley Feb 20 '13 at 8:06
    
@wal you mean this? –  Shadow Wizard Feb 20 '13 at 8:22
1  
@ShaWizDowArd we don't actually use service-stack for that; we have a separate library (BookSleeve) that we open-sourced ages ago - the key point in that library is that it is multiplexed, fully async-IO, and async Task oriented –  Marc Gravell Feb 20 '13 at 17:15
    
@MarcGravell, We want this superb thing as Open Source :) –  Murali Feb 26 '13 at 12:14
    
@MarcGravell genuinely interested, but I would be even more interested in hearing details on it: how you designed it, why redis, which choices you made, how does it work... –  Lorenzo Dematté Mar 1 '13 at 14:49
    
@marcgravell +1 for being genuinely interested –  Chris Miller Mar 13 '13 at 17:11
    
@marcgravell: We would like that open-source :) thanks –  Snake Eyes Sep 16 '13 at 15:52
    
@MarcGravell definitely genuinely interested. –  Siraj Mansour Oct 28 '13 at 14:59
    
@MarcGravell interested –  Raika Feb 27 at 7:00
show 1 more comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .