Apache 2.4およびリモートOpenfireサーバーでConverse.jsをBosh Punjabと組み合わせて実行するか、そのままジャバーページを固定する方法

この記事を書くことにしたのは、ロシア語のインターネットのヘッダーに記載されているすべてのインストールおよび構成中に発生した問題の説明が見つからなかったためです。 正式に言えば、Habréにはパンジャブに関する記事がありますが、残念なことに、それはあまり役に立ちませんでした。 この記事は、管理やPytonなどのトリックにあまり詳しくない人を対象としています。 など

それでは始めましょう。 私のシステムは、Apache 2.4を実行するUbuntu 14.04上のサーバーです。 彼はJabberクライアントを固定したいという要望があったページをホストしています。 クライアントの選択はConverse.jsにかかっています。これは、最小限の設定が必要であり、そのまま使用できるためです。 Jabberサーバー-Openfire。 ネットワーク上のリモートマシンにあり、通常のユーザーとしてのみアクセスできます。 IPアドレスとポートのみが私に知られていました。

すべてのJS-Jabber(自作、Strophe、converse)では、 BOSHサーバーが必要です。 大まかに言って、JS-Jabberaからjabberサーバーへ、またはその逆にメッセージを転送するエコーサーバーです。 パンジャブはBOSHとして扱われました。

導入部分が終了した-セットに行きました。

パンジャブ


Python 2.6> =、 Twisted 11.1> =が必要です。 Ubuntuの場合、リポジトリにはpython-twistedパッケージがあります。 TLSを使用する場合は、pyopensslパッケージが必要になります。
サーバーは暗号化なしで動作するため、このパッケージをインストールしませんでした。
次に、GitHubに移動するか、アーカイブをダウンロードしてPunjabを解凍します。 たとえば、/ usr / share / punjabなど、好きな場所に配置します。 コンソールのこのフォルダーから、次を実行します。

python setup.py install 

さらに、著者の説明によれば、すぐにサーバーを起動することが提案されています。 punjab.tacファイルに注意することをお勧めします。
次のような行があります。

  internet.TCPServer(5280, site).setServiceParent(application) 

リモートサーバーのポートの他の設定は見つかりませんでした。サーバーがポート5222で実行されているため、この設定を5280から5222に置き換えました。

 internet.TCPServer(5222, site).setServiceParent(application) 

「jabber-serverのアドレスをどこに書くか?」という質問があります。 どこの設定でも。 サーバーアドレスは、クライアントでレコードとして既に示されています:vasyliy_pupkin@192.168.1.18、ここで192.168.1.18はjabberサーバーのアドレスです。

コンソールからパンジャーブを実行します。

 twistd -y punjab.tac 

すべてがうまくいった場合、コンソールはこの行を飲み込み、twistd.logファイルがpunjabフォルダーに表示されます。このフォルダーで、BOSHサーバーがどのように動作しているかを確認できます。

薄い点: DNSエントリがログに表示される場合、次の行の直後にpunjab.tacに追加する必要があります。

 bosh = HttpbService(1) 
次のコード:
 bosh.connect_srv = False 

作業を確認します。

.http:// server_address:punjab_port /は次の形式のメッセージを表示します:A XEP-0124-BOSH-コンポーネントマネージャー。
.http:// server_address:punjab_port / http-bindメッセージの形式:XEP-0124-BOSH

Apache 2.4


あなたはApacheを持っていると思います。 プロキシモジュールproxy_httpを有効にする必要があります。 これは、単純なコマンドa2enmod proxy proxy_httpに含まれています。

apache2.confに移動して追加します。

  <IfModule proxy_module> ProxyRequests Off ProxyPass /http-bind http://localhost:5222/http-bind ProxyPassReverse /http-bind http://localhost:5222/http-bind </IfModule> 

ポート5222があることを思い出させてください。
なぜこれが必要なのですか。 ブラウザは、アドレスにのみパケットをポートに送信できません。 したがって、ポートをアドレスに置き換えます。

Converse.js


converseアーカイブのファイルをApache Webサイトのフォルダーに入れ、index.htmlを編集用に開きます。 ファイルの最後に、JSコードのフラグメントを見つけます。

  converse.initialize({ bosh_service_url: 'https://conversejs.org/http-bind/', // Please use this connection manager only for testing purposes i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported keepalive: true, message_carbons: true, play_sounds: true, roster_groups: true, show_controlbox_by_default: true, xhr_user_search: false }); 

このコードでは、希望するbosh_service_urlとロケールを指定します。

保存し、ブラウザでデモページを開きます。 その上で、ログインフォームに「Jabber_Id @ jabber_server」とパスワードの形式で資格情報を示します。

すべてが順調に進んだ場合、連絡先リストが表示されます。

Source: https://habr.com/ru/post/J249731/


All Articles