Como funciona o framework Meteor JavaScript? [fechadas]

108

Eu encontrei o Meteor e, embora pareça emocionante, quero saber como funciona. Quero dizer, os aplicativos convencionais da web funcionam assim: você tem scripts no servidor que pegam dados do banco de dados e os adicionam dinamicamente às páginas da web e os dados enviados pelo usuário são adicionados aos bancos de dados por meio de alguns outros scripts.

Mas como essas coisas funcionam no Meteor? Como as diferentes partes do Meteor estão relacionadas entre si?

Jatin
fonte
8
Esta é uma questão construtiva e factual. Quaisquer respostas válidas TÊM de ser "apoiadas por fatos, referências ou conhecimentos específicos". Aparentemente, casperOne entendeu mal a pergunta ou os critérios para designar uma pergunta como não construtiva.
Charlie Flowers
3
Mas essa pergunta provavelmente solicitará uma "discussão extensa" e não terá uma "resposta" como resposta.
durron597
9
@ durron597 Acho que você está dizendo que a resposta à pergunta é muito ampla (corrija-me se não tiver entendido). Eu posso ver isso, mas isso não é o mesmo que ser "não construtivo". A definição de "não construtivo" no resumo clichê que aparece abaixo deixa claro que a tag "não construtivo" é para perguntas não objetivas. Esta questão é 100% objetiva. O Meteor funciona da maneira que funciona. Se várias opiniões começarem a aparecer aqui, todas, exceto uma, estarão erradas.
Charlie Flowers
@mplungjan Não acho nenhuma dessas respostas satisfatória porque nenhuma delas aborda adequadamente o princípio Meteor de "Dados no fio. O Meteor não envia HTML pela rede. O servidor envia dados e permite que o cliente os processe." o primeiro princípio dos 7 princípios.
Alexander Mills

Respostas:

81

Meteor é uma estrutura que atualiza HTML de maneira elegante em tempo real.

A beleza do Meteor é que você só precisa criar os modelos e os modelos de dados. O resto do código clichê usual é escondido. Você não precisa escrever todo o código de sincronização.

As peças-chave do Meteor podem ser construídas usando as seguintes peças:

  • Ele fornece modelos que são atualizados automaticamente quando seus modelos de dados o fazem. Isso normalmente é feito usando Backbone.js , Ember.js , Knockout.js ou outra ferramenta.

  • As mensagens cliente / servidor são feitas via websockets usando algo como socks.js ou socket.io .

  • A conexão do lado do cliente com o MongoDB é muito legal. Ele replica o driver do servidor MongoDB no cliente. Infelizmente, pela última vez que verifiquei, eles ainda estavam trabalhando para proteger essa conexão de banco de dados.

  • A compensação de latência é simplesmente atualizar o modelo do lado do cliente primeiro e, em seguida, enviar a atualização para o servidor-servidor.

Pode haver outras peças interessantes que você pode encontrar no site do Meteor ou no GitHub .

xer0x
fonte
10
Embora seja bom, isso realmente não responde à questão.
Prisioneiro ZERO
2
talvez responda à pergunta oculta na pergunta
Muhammad Umer
1
Esta resposta afirma claramente que o meteoro faz toda a comunicação cliente / servidor usando websockets. Acho que isso também respondeu à pergunta.
Usama Ahmed
O meteoro js e o node js ainda estão relacionados na v0.9?
yozawiratama
28

Isenção de responsabilidade : Esta resposta descreve Meteor , biblioteca cliente JavaScript para Servidor Meteor . Ele foi originalmente adicionado devido à ambigüidade da pergunta e pode servir ao propósito de esclarecer ambigüidades semelhantes enfrentadas pelos visitantes que buscam respostas semelhantes, mas não têm certeza da diferença.

Para ler sobre o framework Meteor JavaScript , veja esta resposta de xer0x .

Conforme mencionado na documentação do Servidor Meteor, Meteor é uma implementação do Comet . Cometa, por sua vez, é uma contraparte do AJAX .

No caso do AJAX, você geralmente faz uma solicitação quando o cliente vê a necessidade de fazê-lo. Para obter atualizações do servidor, você precisará ligar para o servidor, por exemplo. a cada 5 segundos.

No caso do Comet, a atualização do servidor é mais rápida, pois a conexão é persistente. A conexão é estabelecida pelo cliente, como em AJAX, mas o servidor não responde até que haja alguma atualização ou alcance o limite de execução (scripts no servidor podem ter limites de execução).

No caso do Meteor, você apenas obtém um fluxo constante de dados que precisa de algum código específico do lado do servidor (como Servidor Meteor) e código apropriado no cliente (neste caso, parece que é a classe Meteor).

Tadeck
fonte
1
Existe o Meteor e existe o Servidor Meteor. Tenho a sensação de que a pergunta original era sobre o primeiro e esta resposta era sobre o último. meteor.com e meteorserver.org
ile
2
Não, o material do Meteor.com é uma forma avançada do Cometa. Especificamente, ele usa pesquisas longas, você pode assisti-lo nas ferramentas de desenvolvimento do Chrome.
wmil
1
@ile: Sim, existe um framework JavaScript chamado Meteor ( github.com/meteor/meteor ) e existe o Meteor.js , uma parte cliente do Meteor Server ( meteorserver.org/client-docs ). Acredito que esta seja a questão muito ambígua para dizer qual desses PO realmente tinha em mente.
Tadeck
5
@ile Na verdade, eu estava interessado em meteor.com. Na verdade, eu não sabia sobre meteorserver.org antes de seu comentário.
Jatin,
2
O framework meteor.js NÃO é o servidor http meteor. Apesar da má escolha de nomes das pessoas que fizeram a estrutura. Veja meteor.com para mais informações.
xer0x
25

Toda a mágica com a atualização de dados ao vivo está acontecendo por causa do sistema de rastreamento de dependência. Uma explicação de como ele funciona pode ser encontrada na seção Tracker da documentação.

snez
fonte
Meteor.deps foi renomeado para Meteor.tracker. Fonte aqui
Benjamin Crouzier 01 de
Acho que foi movido para docs.meteor.com/#/full/tracker
Nimir