Want to choose from: Node.js Meteor.js Ratchet RabbitMQ for Real-time WebChat(Forum)

user1963921 picture user1963921 · Jan 9, 2013 · Viewed 14.2k times · Source

I made some research before asking this question but I couldn't find a concrete answer for my situation.

I want to create WebChat with realtime sync to DB on server. (MySQL or MongoDB - all are OK) But about syncing data there is few ways to do it:

  1. PHP + websockets by Ratchet and my work is only to create a protocol by JSON to auth and messaging. Many docs, many tutorials. (i know that websockets didn't work in IE, but is no matter)

  2. node.js + socket.io - there is same tech solution as 1. but in different language.

  3. node.js + meteor.js (sockJS) - seems that guys did all work and I don't need to add any protocol functionality, just code the logic. But how about highload? How about documentation... very young framework.

  4. Tornado + TornadIO2 (socket.io) + RabbitMQ

Can anybody compare RabbitMQ with meteor.js? By performance. Can anybody say which way is better?

I don't know about all frameworks, so if I have better options than those four, please tell me :)

Please give me your opinions. Thank you!

Answer

ShahRokh picture ShahRokh · Jul 14, 2013

I recommend websocket server based on php: Ratchet.I use it, And this link is benchmarking webSocket servers between Ratchet and SockJS.

Becuase you want to make webchat then need best performance and good cpu power.Ratchet has good solutions for handle message between client and server.It has broadcast send messaging and special send messaging for a group of clients,Also it has good control on server events for example mysql update by ZMQ Libarary.Ratchet & ZMQ are on top of Reactphp Project

Also you can see WebRTC (Technology associated with WebSockets)that is another effort to enhance the communication capabilities of modern web browsers. WebRTC is peer-to-peer technology for the Web. The first applications for WebRTC are real-time voice and video chat. WebRTC is already a compelling new technology for media applications, and there are many available sample applications online that enable you to test this out with video and audio over the Web. Please check this link