首页
学习
活动
专区
圈层
工具
发布

Meteor的工作原理及优势与不足

如果使用 HTTP,则只能是客户端请求服务器获取数据,服务器端无法主动向客户端发送数据,而 DDP 的双向机制使数据传输更加主动、灵活。 DDP 使用 JSON 格式封装数据。...因为 MongoDB 存储的文档结构是 JSON,客户端的JS 对JSON 的处理也是非常方便的,所以 DDP 协议使客户端和服务器端的数据沟通变得极其自然。 DDP 协议也是响应式功能的基础。...Meteor 使用的DDP 协议就可以自动实现全双工通信,开发者无须为此费心。...响应式是Meteor 的主要特征,所以Meteor 非常适合如实时聊天或者在线游戏类的应用。 代码高度重用 与Java 一样:写一次,到处运行。...在社区方面,尽管Node.js的社区已经非常成熟,对大家帮助很大,但它还是没法和老牌语言的社区相比,如PHP、Java。

3.5K20

Meteor React Native 三连发!

这三篇Meteor React Native文章来自Differential,一个专注Meteor应用开发的工作室。...第一篇文章讲述了如何轻松地使用DDP连接一个React Native应用到Meteor服务器上,并且在React Native应用上进行实时交互。...第二篇文章更进一步,讲述了如何基于DDP搭建一个用户认证系统,包括使用用户名/email注册、使用用户名/email/token登录和用户登出的实现。...第三篇文章针对第二篇用户系统的客户端安全性问题给出了解决方案,在传输密码时对于原先的明文进行hash,提高了应用安全性。 下面给出了这三篇文章的链接,之后我们也会翻译成中文版噢 : -) 1....Meteor Authentication from React Native http://blog.differential.com/meteor-authentication-from-react-native

65030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Meatier — 内容丰富的类Meteor框架

    Meteor非常出色,它开辟了实时Web开发的新时代!但是三年过去了,它也上了年纪。Meatier这个项目旨在实现同Meteor完全一样的功能,但并不采用单一而庞大的结构。...) 不能处理CSS模块(CSS都在幕后被处理) 官方只支持MongoDB 以下则是Meatier的技术栈选择: 问题 Meteor解决方案 我的解决方案 结果 数据库 MongoDB RethinkDB...redux-form 非常棒的状态跟踪,与 react 完美结合 客户端缓存 Minimongo redux 加分项,日志,时光旅行,撤销功能 Socket 服务器 DDP-server socketcluster...扩展简单,发布订阅,认证,中间件 认证 Meteor accounts JWTs JWTs 也能提供认证服务 认证传输 DDP GraphQL (via HTTP) 只有必要时才使用sockets 前端...Blaze React 虚拟DOM,服务端渲染,异步路由等等 构建系统 meteor webpack Meteor中Webpack的使用非常有限 CSS 魔术般地打包和提供 css-modules 组件范围的

    1.2K90

    Meteor平台下网站开发只需数小时?

    前阶段看到一篇文章,说以往花费数周时间才能完成的网站,现在使用 Meteor 只需要几小时 很好奇Meteor是个什么技术?怎么大幅提高开发效率的?...+ MongoDB,并把这个基础构架同时延伸到了浏览器端,所以你可以用js完成前端到数据库的全部工作 实时 Meteor使用分布式数据协议DDP 来处理实时通信,使用WebSockets或Ajax长轮询来支持这种协议...事实上 Meteor 提供了两个MongoDB数据库:客户端缓存数据库、服务器端MongoDB数据库 当用户更改一些数据时,在浏览器中运行的js代码会更新本地MongoDB中的数据,然后向服务器发出一个...DDP请求 然后客户端代码继续运行,因为它不需要等待服务器回复,与此同时,服务器在后台更新,如果服务器操作失败,那么客户端js代码会依据从服务器新返回的数据立即进行调整,这种调整称为延迟补偿 Meteor...(1)Meteor是一个开发平台,而不是一个框架 例如你要使用LAMP开发一个网站,首先需要在服务器上搭建apache\php\mysql的环境,然后选择一个php开发框架进行安装,配置好数据库连接信息

    2.1K40

    这是前端最好的时代——论前端的“三化”建设

    会上,前Googler尤雨溪带来的Meteor正致力于完善这件事。一般的单页应用都如下图,UI、客户端数据、和服务器数据相互沟通,达到状态的更新。...而Meteor则希望将客户端数据这一层变薄甚至直接去掉,以减少性能的损耗,因此他们引入一种叫Minimongo的数据库驱动,它遵守DDP(分布式数据协议),根据Meteor的说法,是一种简易的结构化数据获取及数据更新协议...它的特色是,可以在客户端直接定制想要订阅的数据格式,服务器根据请求对订阅者进行推送。Meteor的另一个特色是使用了WebSocket技术。...也正因为Meteor使用WebSocket这个HTML5新特性,Meteor将DDP亲切地称为WebSocket的REST。 ?...这套解决方案简化了服务器端,以统一的GraphQL接口提供给Relay这一层,Relay会自动获取数据并统一进行数据变更的处理,使数据获取和处理更加高效。 ?

    1.6K70

    Meteor Toys 3 - 惊掉你下巴的Meteor开发辅助工具

    Meteor Toys 是什么? Meteor Toys是一个为Meteor开发框架专门设计的开发辅助工具集,它能帮助你快速高效地开发Meteor应用。...Throttle也是一个非常棒的Toy,它让你感受生产环境中你App的行为,它能模拟数据库,服务器,客户端的距离,让你感受到实时性的延迟。...新版的Throttle Toy更加可靠,提供了两种瓶颈可供选择:Meteor Toys Throttle 工作于 DDP,Chrome DevTools Throttle 工作于 HTTP requests...Meteor 1.3和React兼容性 Meteor Toys 3 提升了与 Meteor 1.3的兼容性,测试了标准的Meteor-Blaze和Meteor-React应用。...如果你想立刻体验一把,可以在Play Meteor Toys上试玩。它的官方网址为:http://meteor.toys/

    77840

    基于 Meteor 搭建 React Native 用户认证系统

    原文来自Differential的Meteor Authentication from React Native,这是Meteor React Native系列的第二篇,第二部分的Repo会在稍后放出。...这篇文章是上篇「Meteor作为React Native实时后端」的后续。我们将讨论下一个你会接触到的东西,也就是用户认证系统。...这里我们使用Meteor的用户认证系统和npm-ddp-client这个包来实现。 我想在这里谈一下安全性的问题,也是本篇文章所没有涉及到的。...当在生产环境下时,用户传输的是他们的真实数据,请确保启用SSL(对于Meteor应用来说也是一样)。同样,我们也没有在客户端做密码的hash,所以密码是以明文的形式传输的。这同样对SSL提出了需求。

    77040

    使用 Meteor 作为 React Native 的实时后端

    出(du)差(jia)归来,按时奉上之前提到的 Meteor React Native 三连发中译版!点击「阅读原文」查看完整文章! Parse最近宣布停止服务,许多公司会寻求它的替代品。...这次Parse的关门会让许多人不会首选BaaS产品,转而倾向于自行实现后端,比如说使用Meteor。 我们来谈谈如何将一个React Native的App连接到Meteor App(作为服务端)。...现在你就有了一个功能完备的,简单明了的React Native作为前端,Meteor作为后端的应用。我希望这篇教程能让你开启编写React Native+Meteor混合应用的道路。...在下一篇文章中,我们会讲解如何将React Native应用连接到Meteor的用户系统。...当然,目前这个Repo还有一点小问题,就是实时性只体现在RNApp -> Meteor App这里,如果在Meteor App中修改,RNApp需要手动刷新,这里可能与node-ddp-client这个包的

    2K60

    10 个最适合 Web 和 APP 开发的 NodeJS 框架

    有许多的 Node.js 框架,允许你构建实时的端到端网络应用,而无需任何其他第三方 Web 服务器、应用服务器、工具和技术。...Meteor Meteor 框架是 Node.js 上最出色的全栈框架。项目在 GitHub 上有 28K+ 的赞,拥有大量的自定义包,庞大的社区支持,非常好的教程和文档。...Meteor 最优秀的部分是,无论是服务器端的数据库访问,商业逻辑实现,还是客户端的展示,所有的流程都是无缝连接,开箱即用。...整个框架使用统一的 API,Meteor API 同时适用于客户端和服务器端。 它使用的 DDP 协议可以让你在后端连接简单的数据库服务、企业数据仓库、甚至 IOT 传感器。...Meteor 拥有专业化的开发团队,顶级风投的大量资金支持,这都让 Meteor 能够时刻保持业界领先。 5.

    4K20

    java系统高并发解决方案之图片服务器分离

    1.1 图片服务器的优势 1, 分担Web服务器的I/O负载-将耗费资源的图片服务分离出来,提高服务器的性能和稳定性。...如上图所示,我们此时可针对这两个问题做出统一解决方案,在前端添加squid缓存服务器,添加一台或者多台动态切图服务器。...部署独立的图片服务器(甚至是服务器集群)是大型网站图片存储解决方案中最基础的,因为有了独立的图片服务器后,我们才能对图片服务器做更有针对性的性能优化,比如从硬件角度说,图片服务器可以配置高端的硬盘,7200...下面就我个人的想法谈谈几种解决方案。 1、NFS共享方式 如果你不想在每台图片服务器同步所有图片,那NFS共享是最简单也最实用的方式。...2、利用FTP同步 和上面nfs不一样的是,用户上传完图片后是利用ftp同步到各个图片服务器的,php、java、asp.net基本上都能操作ftp。

    3.6K20

    Meteor:快到飞起来的全栈JavaScript开发平台

    小编说:“meteor”这个单词的意思是“流星”,流星的特点是快,一闪而过;同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台。...例如 PHP 开发,需要 JS+PHP+SQL ; 同样,如果选择Java,就需要 JS+Java+SQL。 多种语言的混合使用,学习成本和语言间的沟通成本一定大于单一语言。 2....例如数据库操作对象,在客户端操作的是 miniMongo,在服务器端操作的是真实的 MongoDB,但使用的代码就是一套, 开发者也不用关心这个代码是用在客户端还是在服务器端。 3....前后端的数据同步采用异步方式 用户在客户端写入新数据后,不需要等待服务器端数据库的写入结果,只要数据成功保存在 miniMongo,用户就可以得到反馈,Meteor负责在后台自动向服务器端发送数据,执行同步操作...在传统Web开发中,例如新数据通过 Ajax 发送给服务器端,服务器端真实写入数据库后返回结果信息,在Ajax 的回调方法中再反馈给用户,用户会明显感知到这个过程的延时;而在 Meteor中,由于 miniMongo

    2.7K10

    作为前端你还不知道用哪个全栈框架?不妨试试这个

    无论你是构建实时应用还是想要一个快速的原型开发工具,Meteor 都能为你提供完整的解决方案。本文将详细介绍 Meteor 的显著特性、使用方式及其适用场景,并分析为什么它值得成为你的开发工具选择。...显著特性 实时数据更新 Meteor 最大的特点是内置的实时数据同步机制。无论是客户端还是服务器端,数据更新可以立即反映在用户界面上,而无需手动编写复杂的 WebSocket 或 AJAX 逻辑。...你可以在同一环境中开发应用的各个部分,减少了切换语言和工具的复杂性。 强大的生态系统 Meteor 拥有一个广泛的生态系统,提供大量的包(Meteor Packages)和集成工具。...你可以通过 Meteor 的集成包管理器(Atmosphere)找到和使用成千上万的现成解决方案,帮助你快速添加功能,例如用户验证、支付集成等。...服务器端渲染(SSR) Meteor 还支持服务器端渲染(SSR),为开发者提供更好的 SEO 支持和更快的首屏加载体验。这在构建需要搜索引擎优化的应用时,尤其重要。

    57310

    Java中锁的解决方案

    前言在上一篇文章中,介绍了什么是锁,以及锁的使用场景,本文继续给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁。...JAVA为我们提供了种类丰富的锁,每种锁都有不同的特性,锁的使用场景也各不相同。由于篇幅有限,在这里只给大家介绍比较常用的几种锁。...小编最早接触的就是这两种锁,但是不是在JAVA中接触的,而是在数据库当中。当时的应用场景主要是在更新数据的时候,更新数据这个场景也是使用锁的非常主要的场景之一。...在JAVA中乐观锁并没有确定的方法,或者关键字,它只是一个处理的流程、策略。咱们看懂上面的例子之后,再来看看JAVA中乐观锁。...在JAVA1.5以后,JDK官方提供了大量的原子类,这些类的内部都是基于CAS机制的,也就是使用了乐观锁。

    29410

    JAVA中锁的解决方案

    在这一节中,我们会给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁。 JAVA为我们提供了种类丰富的锁,每种锁都有不同的特性,锁的使用场景也各不相同。...由于篇幅有限,在这里只给大家介绍比较常用的几种锁。我们会通过锁的定义,核心代码剖析,以及使用场景来给大家介绍JAVA中主流的几种锁。...乐观锁 与 悲观锁 乐观锁与悲观锁应该是每个开发人员最先接触的两种锁。小编最早接触的就是这两种锁,但是不是在JAVA中接触的,而是在数据库当中。...在JAVA中乐观锁并没有确定的方法,或者关键字,它只是一个处理的流程、策略。咱们看懂上面的例子之后,再来看看JAVA中乐观锁。...在JAVA1.5以后,JDK官方提供了大量的原子类,这些类的内部都是基于CAS机制的,也就是使用了乐观锁。

    70230

    JAVA中锁的解决方案

    在这一节中,我们会给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁。 JAVA为我们提供了种类丰富的锁,每种锁都有不同的特性,锁的使用场景也各不相同。...由于篇幅有限,在这里只给大家介绍比较常用的几种锁。我们会通过锁的定义,核心代码剖析,以及使用场景来给大家介绍JAVA中主流的几种锁。...乐观锁 与 悲观锁 乐观锁与悲观锁应该是每个开发人员最先接触的两种锁。小编最早接触的就是这两种锁,但是不是在JAVA中接触的,而是在数据库当中。...在JAVA中乐观锁并没有确定的方法,或者关键字,它只是一个处理的流程、策略。咱们看懂上面的例子之后,再来看看JAVA中乐观锁。...在JAVA1.5以后,JDK官方提供了大量的原子类,这些类的内部都是基于CAS机制的,也就是使用了乐观锁。

    58520

    java系统高并发的解决方案

    在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。...在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可...网站HTML静态化解决方案  当一个Servlet资源请求到达WEB服务器之后我们会填充指定的JSP页面来响应请求: HTTP请求---Web服务器---Servlet--业务逻辑处理--访问数据--...OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。...这个框架还可以集成到不希望绑定到特定通信协议,但需要集群和分布式系统支持的任何Java产品中。Shoal是GlassFish和JonAS应用服务器的集群引擎。

    2.4K90

    Java的OOM问题及解决方案

    Java的OOM问题及解决方案 在Java应用程序开发中,Out of Memory(OOM)错误是一种常见的问题。当应用程序试图申请更多内存而可用内存不足时,就会导致OOM错误。...OOM问题的应用场景和解决方案 大规模数据处理 在大规模数据处理场景下,例如日志分析、数据挖掘等应用中,经常会遇到大量数据的处理需求。如果处理方式不当,很容易导致内存占用过高,进而触发OOM错误。...解决方案: 分批处理: 将大规模数据拆分成多个批次进行处理,每次处理一部分数据,避免一次性加载全部数据。...解决方案: 使用连接池: 对于数据库连接等资源,使用连接池管理,避免频繁地创建和销毁连接,减少内存开销。 优化缓存策略: 合理使用缓存,控制缓存的大小和生命周期,避免缓存数据过多导致内存溢出。...解决方案: 使用图片压缩: 对于大尺寸的图片资源,使用压缩算法进行压缩,减少内存消耗。 资源释放: 在资源不再需要时及时释放,避免资源长时间占用内存。

    71710

    java中文乱码_Java中文乱码问题的解决方案

    大家好,又见面了,我是你们的朋友全栈君。 只要掌握了中文乱码问题产生的原因,然后对症下药,就可以顺利地解决这些问题。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。...URL的末端,发送到服务器,此时在服务器端调用setCharacterEncoding()方法也就没有作用了。...{ return new String(str.getBytes(“ISO-8859-1″),”GBK”); } 3.在数据库中存储和读取中文数据 对于大多数数据库的JDBC驱动程序,在Java程序和数据库之间传递数据都是以...这是因为在编译Servlet类或者JSP文件时,如果没有使用-encoding参数指定Java源程序的编码格式,javac会获取本地操作系统默认采用的字符集,以该字符集将Java源程序转换为Unicode...要解决这个问题,在编译Servlet类的源程序时,可以用-encoding参数指定编码为GBK或GB2312,例如: javac –encoding GBK HelloServlet.java 对于JSP

    4.7K50
    领券