PHP conversar com Java (não o contrário)

5 respostas
tiobill

Dae galera, tudo tranquilo?

(Primeiro, desculpe se postei no lugar errado)

Eu estou fazendo um messenger em Java (pode xingar), só que não
é pra “conversar” com outros messengers, é um messenger fechado.
O meu problema é que o servidor dele deve ser feito em PHP. Eu
consigo fazer autenticação de usuário e envio de mensagens
tranquilamente pelo Java.

O meu problema está na hora de receber uma mensagem. Como o protocolo
HTTP é baseado em request/response, (eu acredito que) a conexão deve ser
iniciada pelo cliente, no caso, a aplicação Java. Porém, eu preciso que o servidor
envie mensagens para o cliente, pois as conversas são feitas através dele.

Caso eu não consiga, provavelmente vou fazer direto nos usuários, mas daí
eu teria que abrir alguma porta no cliente, e eu quero evitar isso.

Será que alguém poderia me dar uma luz?

Obrigado!

5 Respostas

Andre_Fonseca

oi

tente dar uma olhada nisso http://php-java-bridge.sourceforge.net/pjb/

L

O PHP não conversa com Java, pelo menos não diretamente. A pergunta correta é: “Fazer uma aplicação no servidor iniciar comunicação com cliente”.

Enfim, existem três alternativas, nenhuma é perfeita:

1) Várias consultas: Você configura a aplicação cliente a enviar uma requisição HTTP, o servidor responde assim que receber, e pode devolver uma mensagem ou não devolver nada. A consulta deve ser feita em intervalos definidos, tipo: 15 em 15 segundos.

2) Consulta longa: A aplicação cliente faz uma requisição HTTP, se o servidor tiver uma mensagem, responde; caso contrário, mantém a conexão presa até uma mensagem nova aparecer (e aí responde e solta a conexão). O cliente não mantém requisições por intervalos, como na anterior; ao invés disso, ele abre uma nova conexão assim que receber a resposta da conexão anterior.

3) Nas costas: Não existe nenhum mecanismo especial de conexão na parte do cliente, o que acontece é que, em toda a conexão normal via HTTP, será “apendado” as últimas mensagens recebidas. O cliente sempre deve olhar as conexões normais e filtrar as mensagens recebidas.

hiram

http://publib.boulder.ibm.com/infocenter/wsmashin/v1r0/index.jsp?topic=/com.ibm.websphere.sMash.doc/overview/zero.overview.doc/docs/en/Overview.html

Outra alternativa.

tiobill

Opa! Resposta Rápida!!! (não tava esperando hehe)

Obrigado por responderem galera, mas…

@André Fonseca e @hiram: Obrigado, mas não resolve meu problema. Eu não
posso ter Java no servidor, é só PHP mesmo. E quanto ao WebSphere, pareceu
interessante, mas não vi aonde poderia me ajudar (e é pago, né? eu acho)

@Leonardo3001: É cara, eu já tava pensando nessas “alternativas”, muito
provavelmente eu vou acabar a segunda, apesar de ter alguns problemas,
é a que “funciona” melhor.

É isso aí, valeu rapaziada!

Andre_Fonseca

Oi

Você quer PHP no server e Java no client certo?

O PHP mesmo tem umas funções que conversam com o Java, antes era um pacote beta, hoje não sei que estágio está, talvez isso te ajude

http://www.php.net/manual/en/book.java.php

Criado 15 de junho de 2009
Ultima resposta 16 de jun. de 2009
Respostas 5
Participantes 4