
An XMPP server with Node.js - julien
http://blog.superfeedr.com/node-xmpp-server/
======
mweibel
I'll definitely try that out, as I'm not _that_ happy with ejabberd
(documentation is awful and erlang is..well.. a little bit weird to me). Does
it already support MUC?

Btw. did you see vines? the ruby xmpp server? Sounds also interesting :)

------
Raphael
It's amazing how powerful a combination Node and Redis are. What more could
you need?

------
iambot
all the node.js peeps will be frantically trying to sort out their
@node_knockout projects, I hope those that need it see this in time

------
brendoncrawford
It would be interesting to see how this stacks up to Ejabbered with say 20k+
concurrent users.

------
schiptsov
and compared to ejabberd it is, let me guess, slower, unscalable, uses more
memory and can handle less simultaneous connections. ^_^

~~~
almost
Which only matters when it matters. There's lots of use in having sometging
hackable. And who knows where it's heading. So no need for the "it's not as
scalable as X hence it's worthless" attitude...

~~~
MostAwesomeDude
Hear hear! By tossing out that attitude, Node developers have been able to
ignore better, more mature codebases like Twisted and Event Machine in favor
of hand-rolled event loops built on a slower, less useful language, and the
world's definitely better for it.

~~~
dzderic
Since when was Javascript slower and less useful than Python and Ruby? V8 has
made JS one of the fastest interpreted languages and it is one of the most
used languages around (you're running it right now!). Also, node uses libev
for its event loop, not some 'hand-rolled' one.

~~~
MostAwesomeDude
PyPy's faster than V8 and all of the maintained reactors in Twisted are faster
than libev/libevent. Also, no, I block JS by default, and HN is written in Arc
(a Lisp), not Node.

~~~
uniclaude
I could not find any resource stating that PyPy is faster than V8. May you
provide us with your source?

Another thing, the fact that you're blocking JS may counter the _"you're
running it"_ example, but as you know, it doesn't invalidate the point that JS
in one of the most used languages.

~~~
MostAwesomeDude
And every time you bank, you use COBOL. You rely on millions of lines of C
just to start your computer. You're currently in a web browser written in more
C++ than any single site has of JS. (Although I'm sure this last point has a
counterexample somewhere, which saddens me.)

------
jeromeparadis
That seems cool but it took me a few seconds to realize that their 4th and 5th
line of code in the clustering example in the post are identical. I doubt that
should be the case. Pretty early it seems.

~~~
julien
Jerome, the cluster example is just an example of clustering :) you can run
the example/c2s.js for a single node example (which won't even require redis).

Also, the 2 lines are actually different. The node.js lib for redis is a bit
weird, so we need both a "pub" client and a "sub" client :)

~~~
jeromeparadis
Sorry about the remark. What a difference a character makes... I suppose it
was too late or too early in the day. In any case, your article was quite
helpful because I've been using Redis a lot, but not yet the PubSub functions.
I've found this approach solves a clustering problem I foresee with a current
real-time node project.

