Pergunta

Estou tentando usar o Punjab Connection Manager com o OpenFire. Eu já tenho um servidor OpenFire em execução. Eu também instalei o Punjab e o servidor inicia corretamente, permitindo -me navegar para a porta 5280 no host. (Embora http: // localhost: 5280/http-bind Dá um "Recurso não encontrado mensagem".) Não tenho certeza de como proceder daqui. Eu habilitei uma configuração no console administrativo do OpenFire em gerentes de conexão que diz "Os gerentes de conexão podem se conectar a este servidor".

Como configurar o Punjab para se conectar com o servidor XMPP?

Até agora, eu estava estabelecendo diretamente uma conexão BOSH com o servidor usando o xmpp stophe lib e o módulo proxy no apache. Agora desejo usar o Punjab.

Foi útil?

Solução

Eu tive a mesma pergunta ontem e pude resolver isso.

Está certo - você não precisa de nenhuma configuração do Punjab. Por padrão, o Punjab funcionará na porta 5280. O Punjab direciona as estrofes para o servidor desejado automaticamente.

<body rid='123' xmlns='http://jabber.org/protocol/httpbind' to='yourdomain.tld' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>

Esta é uma estrofe usada para configurar uma conexão via Bosh. Você pode ver o atributo 'to'. O Punjab pode dizer com isso com o que o XMPP Server para falar.

Esqueça o material de configuração do Connection Manager no OpenFire. Você pode manter esse recurso completamente desativado. Isso ocorre porque o Punjab usa uma conexão XMPP normal para o OpenFire - assim como um cliente usual - ele fala na porta padrão 5222.

Então, tudo que você precisa fazer é

  • Diga a Punjab que URL ouvir
  • Proxy Bosh solicita a esse URL na porta padrão do Punjab 5280

Diga a Punjab que URL ouvir

No arquivo punjab.tac, há uma linha que diz

root.putChild('bosh', b) # url for BOSH

Então 'Bosh' fará parte do URL que o estrofe tem que enviar suas estrofes, o que será então http: //www.yourdomain.tld/bosh. O '/bosh' também pode ser '/http-bind' ou '/xmpp-httpbind', mas seu arquivo punjab.tac precisa saber disso.

Proxy Bosh solicita a esse URL na porta padrão do Punjab 5280

Em seguida, seu servidor da web deve lidar com as solicitações direcionadas para '/bosh' e proxy para Punjab na porta 5280. Suponha que você use o Apache e, na sua configuração de host virtual, algo assim fará o trabalho:

<IfModule proxy_http_module>
    ProxyRequests Off 
    ProxyPass /bosh http://localhost:5280/bosh
    ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>

Outras dicas

Eu fiz a mesma coisa e também funcionou no meu fim. Obrigado pela explicação detalhada.

Para acrescentar, o principal motivo da confusão no meu caso foi que estou usando diferentes hosts virtuais para diferentes projetos e vários projetos usam o mesmo servidor XMPP. Além disso, embora o servidor esteja instalado no host local, não é nomeado localhost. Portanto, se alguém estiver enfrentando problemas semelhantes, você precisará adicionar rota = 'xmpp: servidor: porta' (por exemplo, rota = 'xmpp: 127.0.0.1: 5222' no meu caso) para toda a solicitação, caso contrário, o Punjab não seria capaz de direcionar direcionar as estrofes automaticamente para o servidor

@Joe:

Eu acho que você deveria escrever um plug -in STROPHE.JS que adicionaria o atributo de rota correto (rota = 'xmpp: dev.mydomain.com: 5222') às suas solicitações XMPP ... tentarei guiá -lo ao fazer isso quando eu Volte do trabalho.

Parece que seu aplicativo pode falar com o Punjab, mas o Punjab não sabe onde rotear suas solicitações XMPP.

Uma boa maneira de entender por que seu aplicativo está na conexão seria ler isso:http://xmpp.org/extensions/xep-0124.html Procurando por bits sobre a rota :)

Eu usei o Punjab envelhece, mas pelo meu conhecimento de como os gerentes de conexão do BOSH funcionam, não acho que seu servidor exigiria qualquer configuração especial para permitir que o Punjab o acesse. Por exemplo, eu uso um gerenciador de conexão personalizado escrito no PHP (usando Jaxl biblioteca) que independentemente do tipo/tipo/versão do servidor Jabber de destino pode se comunicar com sucesso com eles.

No seu caso, você pode simples começar a proxyy suas solicitações de Strophe (usando o módulo Apache Proxy) para http: // localhost: 5280/http-bind , onde 5280 é tratado por Punjab Conn. Gerente. A partir dele, deve ser capaz de sair para o servidor de destino sem qualquer configuração especial necessária no servidor.

Sugiro que você tente se conectar ao seu Gmail ou da conta do Facebook usando o Punjab para garantir que você o configure corretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top