Logo Hardware.com.br
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas

Comunicação entre sessões diferentes de forma síncrona

#1 Por tpcvasco 26/02/2016 - 12:29
Meu objetivo nem é fazer com q alguém me ajude a fazer, meu maior problema aqui é saber como eu busco na internet por esse tipo de tecnologia, sendo q qualquer busca q eu faça retorna muita coisa q não tem nada a ver com q eu quero.

Eu quero fazer uma página web onde atualizações q sejam feitas por outras pessoas, em seus browsers, seja refletida dinamicamente e automaticamente na página, de forma q todos possam ver a mudança "on-demand", sem precisa de um F5. Um exemplo do q eu quero são os comentários do Facebook. Assim q alguém posta um comentário, ele aparece na hora para as outras pessoas q estejam vendo aquele mesmo post. Outros sites têm comentários q funcionam dessa mesma forma (o próprio fórum aqui tem aquele botão de alertas - o globinho do lado da caixa de pesquisa - q faz algo semelhante).
Como eu faço isso? Qual é a tecnologia? Só HTML5, JavaScript e Ajax já é suficiente ou precisa de mais alguma coisa por trás? Linguagens para servidor (J2EE, PHP, etc) são necessárias tb ou opcionais? Dá pra fazer isso só com elas (e seus frameworks)?
Se não der para responder tudo, pelo menos o nome dessa "mágica que faz isso acontecer" já ajudaria bastante rsrs
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#3 Por tpcvasco
27/02/2016 - 18:57
Mas qual seria esse "esquema"? Duas pessoas estão vendo a página, Fulano e Cicrano. Como eu sei q é para alterar a página de Cicrano assim q Fulano escrever alguma coisa?
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#4 Por esquiloesper...
27/02/2016 - 20:09
@tpcvasco perceba que só funciona depois que a pessoa já postou - em outras palavras: Houve alteração no Domínio. Daí fica fácil deduzir o resto: Cada registro na lista de (ID dos) participantes ali receberá um alerta (na verdade, add um registro no atributo "alertas" do seu objeto "User"). Uma variável da página recebe este atributo que controla uma div fixa mas oculta na página e também o campo "Alertas". Nem precisa de Ajax... Mas pode ser feito com Ajax também.

Isto vale para aqui e para lá. Quando ativada a opção para avisar por e-mail, o mesmo trigger irá disparar o email.
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
DiguinDeveloper
DiguinDevelo... Super Participante Registrado
313 Mensagens 148 Curtidas
#5 Por DiguinDevelo...
28/02/2016 - 19:23
tpcvasco disse:
Mas qual seria esse "esquema"? Duas pessoas estão vendo a página, Fulano e Cicrano. Como eu sei q é para alterar a página de Cicrano assim q Fulano escrever alguma coisa?


O jeito mais " bruto" de implementar isso a meu ver é usando SSID de cada um e grava na tabela, junto com a url da página que todos os visitantes estão vendo... seria algo assim, visitou a página, grava na base o SSID/login etc junto da url, depois o campo da mensagem fica ouvindo a tabela (pela url ... Vc guardando a lista de SSID com data e hora etc, dai em diante o seu é limite)...

Isso tudo usando formas tradicionais, http normal e ajax, mas se quise evoluir para websockets seu projeto vai ficar bacana...
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#6 Por tpcvasco
29/02/2016 - 10:40
esquiloesperto disse:
Cada registro na lista de (ID dos) participantes ali receberá um alerta (na verdade, add um registro no atributo "alertas" do seu objeto "User").


Mas como eu faço esse alerta? Em qual linguagem?

esquiloesperto disse:

Uma variável da página recebe este atributo


Essa variável fica "escutando" os alertas?

esquiloesperto disse:

Isto vale para aqui e para lá. Quando ativada a opção para avisar por e-mail, o mesmo trigger irá disparar o email.


Não entendi essa parte do mail, não sei se vc entendeu a minha dúvida, pois em nenhum momento eu me referi a enviar mails, eu quero alterar a página mesmo.

Vou dar um exemplo de algo bem semelhante ao q eu quero:
http://resistance-avalon.meteor.com/
Abra essa página em duas abas do seu browser. Na 1a. aba vc clica em "New Game" e adiciona um nome qualquer.
Aí vai aparecer um "Access Code". Vc copia esse código, vai na 2a. aba, clica em "Join Game", cola o código e digite um outro nome qualquer.
Assim q vc clicar em "Join" de novo nessa 2a. aba, vc vai ver q o nome vai aparecer tb na 1a. aba.
A idéia é de um jogo em tempo real, mas sem utilizar Flash ou Java plugin ou Silverlight, ... Só com html.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#7 Por esquiloesper...
29/02/2016 - 17:48
tpcvasco disse:
Mas como eu faço esse alerta? Em qual linguagem
Como foi citado também o FGdH usei o nome "Alerta" existente aqui porque estamos familiarizados com ele.
E a funcionalidade em si seria a persistência em BD.
Essa variável fica "escutando" os alertas?
Eu deixaria esta tarefa a cargo da rotina de persistência (no MVC: o Controller). Ao receber a pagina com a variável populada a mensagem é automaticamente exibida. Usar Ajax para "escutar" é um recurso a mais, por isso, opcional.
Não entendi essa parte do mail, não sei se vc entendeu a minha dúvida, pois em nenhum momento eu me referi a enviar mails, eu quero alterar a página mesmo.
Mencionei o email apenas a título de informação de como o mesmo recurso serve para vários serviços.
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#8 Por tpcvasco
04/03/2016 - 17:56
Agradecido aos de boa vontade em ajudar, em especial @esquiloesperto, mas as respostas ainda não tinham me feito avançar mto, faltavam nomes, métodos, funções, técnicas, exemplos ("eu quero ibagens" rsrs)
Então procurei mais um pouco, finalmente encontrei isso, q pelo menos me clareou um pouco o caminho
http://pt.stackoverflow.com/questions/9475/notifica%C3%A7%C3%B5es-em-tempo-real-semelhante-ao-stack-overflow
Ele cita duas técnicas: websocket e long-polling
Esse link tb parece fazer algo semelhante
https://www.smashingmagazine.com/2012/05/building-real-time-commenting-system/

Meu objetivo agora é ver se consigo aplicar essas técnicas em Java (JBoss), minha zona de conforto rs
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Shura16
Shura16 Ubbergeek Registrado
2.5K Mensagens 601 Curtidas
#10 Por Shura16
09/03/2016 - 16:36
Basicamente você usa uma variável global/variável de aplicação. Independente da linguagem utilizada.

Então você pode persistir esses dados no banco de dados ou não conforme necessário.

Neste caso não vai ficar na sessão e sim na aplicação. Você pode procurar exemplos de aplicações de Chat (na linguagem desejada) que mostrará a você como fazer isso.
Coragem não é ausência de medo e sim o controle dele.

Linux em casa!
Windows 10, na empresa!
Agora: Android no bolso!
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#11 Por esquiloesper...
09/03/2016 - 23:17
Isso mesmo @Shura16, este foi o conceito que abordei também.
O disparo será único ou fracionado, podendo nem mesmo existir. Isto pode até reduzir o dinamismo, mas a maior vantagem é que o consumo de banda é ínfimo e não sobrecarrega em nada o servidor.
O "canal ativo" fica dependente única e exclusivamente da interação (participação/navegação) do usuário.
- Sem navegação não há troca de mensagens e o usuário pode até estar ausente por algum tempo... então para quê manter um canal ativo e o envio de alertas se o cliente só perceberá qualquer notificação quando ele voltar a navegar?
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#12 Por tpcvasco
10/03/2016 - 08:32
Obrigado a todos pelas respostas.
Meu problema, @Shura16 e @esquiloesperto, como eu já havia comentado, não era com relação aos dados compartilhados, isso pra mim estava tranquilo. Minha dificuldade era com a parte web, como manter a conexão aberta nos clientes e como mudar as páginas dinamicamente.
Mas como alguns já disseram, a resposta (pelo menos pra mim) está nos websockets. Eu já havia postado alguns links, e fuçando mais um pouco acabei encontrando coisas muito úteis sobre Node.js, que era exatamente oq eu queria
http://udgwebdev.com/node-js-para-leigos-explorando-real-time
Uma ótima forma de lidar com websockets.

E depois, fuçando mais ainda nesse mesmo portal (Excelente, por sinal) encontrei o Meteor, minha mais nova menina dos olhos
http://udgwebdev.com/primeiros-passos-com-meteor

Uma camada de abstração maior ainda em cima do Node.js, facilitando ainda mais a programação.
Eu até já tinha dado o exemplo do http://resistance-avalon.meteor.com/ em outro post, mas achei q fosse algo fechado e difícil, mas não, tem muita documentação na web.
Já comecei o projeto que eu queria e estou gostando muito. Decidi sair da minha zona de conforto e aprender algo novo, para quem quiser algo semelhante vale a pena conhecer.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal