流星兼容性

时间:2012-12-22 10:00:33

标签: node.js websocket socket.io meteor yeoman

我正在考虑使用Meteor创建我的下一个应用程序,但之前我有几个问题。

  • 据我所知,服务器和客户端之间的通信使用DDP协议/ WebSockets。哪些浏览器支持Meteor?

  • Meteor通信协议和socket.io有什么区别?

  • 如果没有区别,是否可以使用socket.io而不是本机Meteor DDP协议/ WebSockets?

  • Meteor是否与Yeoman结合使用(Paul Irish开发的工作流程框架)?

提前多多谢谢你!

2 个答案:

答案 0 :(得分:23)

让我们看看我是否可以按他们出现的顺序回答你的问题......

  • Meteor支持所有主流浏览器。 IE,Chrome,Safari。有关IE的版本,请参阅上面的Rahul指针。
  • socket.io是一种消息级协议,负责发送,接收和路由消息。相比之下,DDP(Meteor的协议)是一个更高级别的协议,它模拟数据库到浏览器和RPC调用的部分复制。实际上,DDP 使用封面下的消息级协议:sockjs
  • 打破Meteor的消息级传输,目的是直接替换,目前需要进行一些重构,并且需要Meteor的源代码。将来,消息级传输可能会更加封装,但Meteor通常会在那里提供合理的默认值 - 可能是也可能不总是基于sockjs
  • 虽然我没有一起尝试流星和Yeoman,但它们涵盖了很多相同的基础。两者都希望为您运行本地Web服务器;两者都有关于项目布局的意见,都可以选择缩小你的javascript,都想管理你的软件包(Meteor中的更多支持正在开发中),两者都为你的应用程序提供了初步的样板,等等。我怀疑它在开发Meteor应用程序时,使用纯Meteor工作流程会更容易。

答案 1 :(得分:0)

有些软件包有助于实现普通的websocket功能 - StreamyStreamy-rooms会浮现在脑海中。但是Web套接字功能和DDP之间存在很大差异。 DDP使用websockets,但更多。乐观更新等内容并未包含在websockets中。此外,通过在客户端和服务器上都有一部分数据库,您不必连接套接字发送器和接收器。这使得开发更直观,更快捷。如果您想要这种特定行为,您也可以使用列出的软件包,例如,如果您不想对数据库保留某些更改但仍然将它们发送给特定用户。