I am looking for open-source linux-based Comet server.
Currently, looking at Hookbox – but as it’s in Python, I am concerned about performance.
Does Python instead of C++ have big impact on performance here?
Developer estimated it’s performance to about 100 of requests per second when having 100 channels… Not really fast 😐
Could you suggest the most actively supported/used comet server which is binary(=faster), easy to integrate and (kinda) lighweight? Also, Java/.NET is no-go here.
Our goal is some 10k+ connections per server, about 2000-5000 messages per second across 10-20k channels.
What about Go?
Here’s a possible – if slightly “alternative” approach – as
Have a look at Google’s Go language, and in particular their webserver example, which presents pretty good performance benchmarks.
They also have a web-application development code-lab for training.
Some interesting discussions on web-frameworks for Go and Comet-support. You’ll also find another http-server implementation.
Like I said, maybe not exactly a ready-made solution, but I thought you might be interested in exploring that.
Really, no Python?
If you were to reconsider Python, you could have a look at Tornado.
Really, no (J)VM-Languages?
If you were to reconsider your position on VM languages, I’d also recommend you have a look at Scala and the Lift web framework, which has great support for comet with a very expressive syntax and good performance (that’s used by Foursquare, Twitter, Novell Pulse, so you can bet on its performance)
Fine, let’s be conventional…
Last but certainly not least, have a look at LightHttpd, which is developed in C and should satisfy all your needs. Look at the LightHttpd page on Wikipedia for a brief.
(but really, have a look at the other ones, especially at Go and Scala/Lift, even if only for educational purposes)
If you need more…
Actually, I just noticed someone seems to have already done the legwork. So if you want more details or to do some more research, have a look at the Comet Servers for Single Dealer Platforms article and Comet Daily‘s Comet Maturity Guide.
EDIT: I just realized I din’t answer the first part of your question. yes, using Python might have an overhead over a C/C++ implementation, especially if you don’t use pre-compiled Python files. And considering what you want (in terms of numbers of connections per seconds and concurrent connections), I think you more importantly need something that can scale than something that would necessarily be “just” fast in terms of execution speed.
The Comet for highly-scalable applications presentation may also interest you.