[SP-pm] Perl Socket

João Moura joaomdmoura at gmail.com
Thu Oct 28 11:38:50 PDT 2010


É o meu servidor n é nada especial Stas lol...mas gostei da lógica rs
Okay vou dar uma olhada nessa questão do push pop ou long-polling, também na
requisição assíncrona.
Acho que o long-polling pode me ajudar, eu chegando em casa hj vou dar um
olhada nisso, acho que é mas fácil que qlq lance de socket.
Ai se tiver alguma cuvida eu mando email.

João Moura

2010/10/28 Renato Santos <renato.cron at gmail.com>

> Esse esquema de 'long-polling' de cuspir apenas o necessário eu também já
> vi,
>
> você, no lugar do IFRAME, pode usar um objeto AJAX e ficar "observando"
> pelas mudanças dos status.
>
> é mais complicado, pois, depois de fazer isso, você ainda vai precisar
> "parsear" o conteudo para ler a parte nova.
>
> Eu ainda continuo achando melhor fazer um AJAX assim:
>
>
> Cliente -> AJAX (GET http://teste.com/getcontent.php) ...
> servidor:
> getcontent.php:
>
> while(1){
> $semoop = check_for_new_content($_SESSION['user']);
> if ($semoop){
>      cospe_conteudo_pra_tela_usando_json_encode_pls();
>      break;
> }
>
> sleep(35); // isso é beeeeeem pouco
> }
>
> AJAX retorna,
> ler o conteudo, e decide se vai fazer uma nova requisição ou não,
> geralmente, sim.
>
> Ai fica nesse loop infinito.
>
>
> O problema é que se você não mudar o timeout (que na maioria das vezes deve
> ser 300 segundos)  vai acabar dando alguma zica.
>
> Então, na minha opiniao, seria melhor ter um controle, por exemplo,
> responder a cada X minutos que não tem nada pra atualizar.
>
>
> voce pode usar jQuery ( http://api.jquery.com/jQuery.ajax/ )
>
> Pra ser sincero eu nunca cheguei a testar timeouts com mais de 1 hora.
>
>
>
> 2010/10/28 Stanislaw Pusep <creaktive at gmail.com>
>
>> Existe ainda o sistema que o bate-papo do UOL usava no começo do século,
>> mas, dependendo da aplicação, ainda pode ser útil :)
>>
>> É basicamente uma página HTML que nunca termina de carregar. A vantagem é
>> que programar em cima disso é super-intuitivo; a desvantagem é que precisa
>> de uma configuração especial de servidor HTTP (ou até servidor especial) que
>> tenha um tratamento distinto de timeout.
>>
>> ABS()
>>
>>
>>
>>
>> 2010/10/28 Renato Santos <renato.cron at gmail.com>
>>
>>> E sim,
>>> socket seria otimo,
>>> mas o HTML 5 ainda não esta com toda essa força (que dizer, está, mas o
>>> mundo não) para usar socket diretamente no browser, então, o melhor mesmo é
>>> usar um pop/push
>>>
>>> No seu caso é long-polling (na minha opinião)
>>>
>>> pois, vc pode abrir uma conecao pra cada usuario,
>>>
>>> quando um mexer a div, você caputra isso no servidor e responde,
>>>
>>> assim que responder, faça outra requisição que "arguarda" até a resposta.
>>>
>>> é meio chatinho, pois tem questões de timeout, etc...
>>>
>>>
>>> Exemplos:
>>>
>>> http://stackoverflow.com/questions/333664/simple-long-polling-example-code
>>>
>>> http://stackoverflow.com/questions/1785808/ajax-long-polling-comet-php-on-lighttpd-v1-4-22-multiple-instances-problem
>>>
>>>
>>> Tenta o
>>> http://stackoverflow.com/questions/333664/simple-long-polling-example-codeantes pq eu sei que funciona
>>>
>>> 2010/10/28 Marcio Ferreira <marciodesouzaferreira at gmail.com>
>>>
>>> De fato.
>>>>
>>>> Experimenta fazer uma requisição assíncrona em callback.
>>>>
>>>> http://knol.google.com/k/jquery-callback-contexts
>>>>
>>>> []s,
>>>>
>>>> @_marcioferreira
>>>> Marcio Ferreira
>>>>
>>>> "Perl lives as the 'toolbox for Unix' "
>>>>
>>>>
>>>>
>>>> 2010/10/28 Eduardo Verissimo <everissimo at gmail.com>
>>>>
>>>>> As coisas estão misturadas. Vamos nos ater à sua dúvida inicial. Você
>>>>> quer um programa que se conecte a um banco de dados e escreva um arquivo js
>>>>> de tempos em tempos para que você possa carregar na sua página inicial
>>>>> usando json. Para isso, usar um servidor - que é o que você chama de socket
>>>>> - é absolutamente desnecessário. Você precisa usar um loop - possivelmente
>>>>> infinito - que faça uma query a cada iteração no banco de dados e com as
>>>>> informações retornadas você escreva o arquivo js.
>>>>>
>>>>> Por que não entendemos a necessidade de usar socket? Porque ela é
>>>>> completamente desnecessária para a sua necessidade. Está completamente fora
>>>>> do escopo. Por isso, esqueça socket. Repito: esqueça socket.
>>>>>
>>>>> Abraço!
>>>>>
>>>>> Eduardo
>>>>>
>>>>>
>>>>> 2010/10/28 João Moura <joaomdmoura at gmail.com>
>>>>>
>>>>>> Srry ppl, acabei deixando a conexão sem necessidade realmente, o teste
>>>>>> que eu estava fazendo antes era com o resto do script aonde envia uma
>>>>>> palavra digitada ao servidor via socket e depois printava isso na tela do
>>>>>> servidor, mas estava tendo problemas por isso eu acabei removendo e como
>>>>>> precisava com uma certa urgencia fiz esse esquema com o json, mas não é mais
>>>>>> necessário o socket se permanecer assim, a questão é que com o socket isso
>>>>>> pode ficar bem mais prático e limpo.
>>>>>>
>>>>>> O exemplo que tava me baseando que n consegui fazer funcionar foi o
>>>>>> primeiro desse link:
>>>>>> http://www.itmnetworks.com.br/suporte/manuais/php/ref.sockets.html
>>>>>>
>>>>>> Nesse esquema que eu fiz com o json, esse php fica em looping pegando
>>>>>> os dados de uam tabela my sql que eu vou jogar para HEAP para ficar mais
>>>>>> rapido e salva em um json, fica fazendo isso em looping.
>>>>>> Enquato isso a página que o cliente acessa, fica puxando esse json
>>>>>> para fazer as alterações e gravando no banco de dados as mudanças que esse
>>>>>> cliente pode realizar.
>>>>>>
>>>>>> Mas realmente a conexão socket n esta fzd mais nada aqui, mas com ele
>>>>>> séria mais fácil certo? se eu conseguisse fazer rs
>>>>>>
>>>>>> João Moura
>>>>>>
>>>>>> 2010/10/28 Renato Santos <renato.cron at gmail.com>
>>>>>>
>>>>>> Codigo confuso, tecnica duvidosa!
>>>>>>>
>>>>>>> Em out 28, 2010 2:15 PM, "Solli Honorio" <shonorio at gmail.com
>>>>>>> >escreveu:
>>>>>>>
>>>>>>>
>>>>>>> João,
>>>>>>>
>>>>>>> Não entendi porquê você conecta na porta 80 do teu host. No teu
>>>>>>> código você abre uma conexão e não faz nada com ela ? Abre um banco de dados
>>>>>>> e grava o conteúdo no arquivo 'teste.js', e depois ?
>>>>>>>
>>>>>>> Eu realmente ainda não entendi o 'socket' em tudo isto ? Você está
>>>>>>> lendo ou enviando algo pelo socket ?
>>>>>>>
>>>>>>> Solli M. Honório
>>>>>>>
>>>>>>> 2010/10/28 João Moura <joaomdmoura at gmail.com> > > Claro Solli, posso
>>>>>>> disponibiliza-lo sim, provave...
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> SaoPaulo-pm mailing list
>>>>>>> SaoPaulo-pm at pm.org
>>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> SaoPaulo-pm mailing list
>>>>>>> SaoPaulo-pm at pm.org
>>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> SaoPaulo-pm mailing list
>>>>>> SaoPaulo-pm at pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> SaoPaulo-pm mailing list
>>>>> SaoPaulo-pm at pm.org
>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SaoPaulo-pm mailing list
>>>> SaoPaulo-pm at pm.org
>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>
>>>
>>>
>>>
>>> --
>>> Renato Santos
>>> http://www.renatocron.com/blog/
>>>
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> Renato Santos
> http://www.renatocron.com/blog/
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20101028/5a7a22a7/attachment.html>


More information about the SaoPaulo-pm mailing list