Node.js is an environment for doing event-driven programming in JavaScript. It's certainly appropriate for programs that are I/O bound; e.g., shuffling data between HTTP clients (browsers) and backend systems.
RabbitMQ is a messaging broker and it implements AMQP, which is a messaging protocol. It's built with Erlang/OTP, which is an environment for doing highly concurrent programming.
You could replace RabbitMQ with Node.js in the sense that JavaScript is a general-purpose programming language; in principle you can always write something from scratch that has the particular features that you might need from RabbitMQ (work distribution, persistent queuing, ..). Node.js is even appropriate for many of these kinds of features (lots of I/O, not too much state).
It really makes more sense to compare Node.js with Erlang/OTP; and, since Erlang/OTP has been used in production systems for decades, inevitably this is something of a one-sided comparison. But you didn't ask about Erlang.
For your particular use, you have the by-now classic dilemma: write something from scratch, or adapt to your purpose something that already exists. Neither represents a ready-made solution, just a different trade-off.
Actually it's not quite so clear cut as that; you might choose to use Node.js to proxy your browser-borne connections (websockets?) through to RabbitMQ; that's the sort of thing Node.js is good at, and there's even an AMQP adapter for Node.js.
Putting aside Node.js, RabbitMQ has plugins for things like pubsubhubbub and STOMP and JSON-RPC, one of which may be what you need.
(Disclosure: I work on RabbitMQ, and with Node.js)