DiguinDevelo...
Super Participante
Registrado
313 Mensagens
148 Curtidas
Já tentou fazer um esquema usando ajax e base de dados?
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
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..."
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
@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.
Navegar é preciso, viver... também.
DiguinDevelo...
Super Participante
Registrado
313 Mensagens
148 Curtidas
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
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
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?
Uma variável da página recebe este atributo
Essa variável fica "escutando" os alertas?
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..."
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
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.
Navegar é preciso, viver... também.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
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..."
Fergo
Highlander
Registrado
9.3K Mensagens
1.1K Curtidas
Procure por HTTP Persistent Connection/Keep-Alive ou WebSocket, que permitem você manter uma conexão aberta como cada cliente, podendo notificar ou alterar a página em tempo real conforme chegam informações.
Shura16
Ubbergeek
Registrado
2.5K Mensagens
601 Curtidas
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!
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
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?
Navegar é preciso, viver... também.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
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..."
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas