XMPP サーバーとして MongooseIM を使用しています。このサーバーは通常、トランスポートとして TCP を使用します。このサーバーは私の iOS クライアントで正常に動作します。しかし、Web アプリで同じサービスを作成したい場合、どの種類の JavaScript XMPP フレームワークでも機能しないことがわかりました。
ブラウザでは、TCP をトランスポートとして使用できないためです。代わりに、WebSocket と BOSH が代替手段となります。MongooseIM で WebSocket を使用すると、 が表示されますhand shake failed
。BOSH の場合は を示します403 error
。では、MongooseIM は本当に WebSocket や BOSH で動作するのでしょうか?
また、トランスポートとして TCP を使用すると、接続 URL は「example.org」になります。なぜ BOSH では「example.org/http-bind」になるのでしょうか? 2つのトランスポートに違いがあるのはなぜですか?