Meteor compatibility


Question

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 !

1
14
12/22/2012 10:00:32 AM

Accepted Answer

Let's see if I can answer your questions in the order that they appear...

  • Meteor supports all major browsers. IE, Chrome, Safari. See Rahul's pointer above for versions of IE.
  • 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.
  • Breaking out Meteor's message-level transport with an aim towards drop-in replacement would currently require some amount of refactoring and getting down and dirty with Meteor's source code. In the future, the message-level transport is likely to be a bit more encapsulated, but Meteor will generally provide a reasonable default there -- which may or may not always be sockjs-based.
  • While I have not tried Meteor and Yeoman together, they cover a lot of the same ground. Both want to run your local webserver for you; both have opinions about the layout of your project, both optionally minify your javascript, both want to manage your packages (more support for this in Meteor is in development), both provide an initial bit of boilerplate for your app, etc. I suspect it would be much easier to use a pure-Meteor workflow when you're developing a Meteor app.
22
12/24/2012 6:14:45 PM

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.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon