I'm thinking of using Meteor to create my next application but I had a few questions before.
From what I understand the communication between the server and the client uses the DDP protocol / WebSockets. What browsers support Meteor ?
What's the difference between the Meteor communication protocol and socket.io ?
If there is no difference, is there the possibility to use socket.io instead of the native Meteor DDP protocol / WebSockets ?
Is Meteor usable in combination with Yeoman (workflow framework developped by Paul Irish) ?
Thank you a lot in advance !
Let's see if I can answer your questions in the order that they appear...
socket.io
is a message-level protocol, which takes care of sending, receiving, and routing messages. In contrast, DDP (Meteor's protocol) is a higher-level protocol that models partial replication of your database to the browser, and RPC calls. Indeed, DDP uses a message-level protocol under the covers: sockjs
. sockjs
-based.There are some packages that help in implementing ordinary websocket functionality - Streamy
and Streamy-rooms
come to mind. But there is a big difference between web socket functionality and DDP. DDP uses websockets, but is much more. Things like optimistic updating aren't included in websockets. Also, by having a portion of the database on both client and server, you don't have to wire socket emitters and receivers. This makes development more intuitive and faster. If you want that specific behavior, you can also use the packages listed, for example, if you don't want to persist certain changes to the database but still send them to particular users.