それでは始めましょう。 私のシステムは、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」とパスワードの形式で資格情報を示します。
すべてが順調に進んだ場合、連絡先リストが表示されます。