web-dev-qa-db-ja.com

オープンソースのWebSocket(JavaScript)XMPPライブラリはありますか?

WebSocketを使用し、ブラウザーで実行することを目的としたオープンソースのXMPPライブラリを作成した人はいますか?

34

サーバーが実装できるXMPPover WebSockets の標準はまだありません。これは、クライアント側が適切に取り組む前に必要になります。

最初のステップは、WebSocketの標準化を完了することです。これは、執筆時点ではまだIESGによって承認されていないIETFHyBiワーキンググループで発生する可能性があるようです。数週間前の広島IETF会議でHyBiBirds-of-a-Feather(BoF)があり( 会議資料 を参照)、かなりうまくいきました。

WebSocketsが安定した参照を持ち、落ち着いているように見えた後、 [〜#〜] xsf [〜#〜][〜#〜] xep [〜#〜 ] XMPPをWebSocketにバインドします。おそらく、WebSocketフレームごとにスタンザがあります。

編集:Jack Moffittは、使用可能なプロトコルで最初のパスを使用してIETF Internet-Draft を作成しました。 [〜#〜]警告[〜#〜]。これはまだ大幅に変わる可能性があります。後で完全に取り除こうとする場合にのみ実装してください。 [〜#〜]警告[〜#〜]

18
Joe Hildebrand

複数の解決策があります(どれも完璧ではありません)

1.Kaazingを使用します。

彼らはすでにそれをサポートしています。オープンソースですが、なんらかの デュアルライセンス なので、プロジェクトに使えるかどうかを確認したほうがいいです。

2. js.ioとAPE(Ajaxプッシュエンジン)を組み合わせる

APEはCometフレームワークですが、最近Websocketのサポートを開始しました。彼らのウェブサイト(「プロキシとしてのAPE」セクション)では、xmpp.jsを含むjs.ioライブラリを実行できると言っているので、それらを組み合わせるとうまくいく可能性があります。

3.Cauchoを使用する

これは、APEに似たJavaベースのフレームワークであり、ワンストップショップのCometソリューションを提供し、XMPPとWebSocketの両方をサポートしているようです。

4.StropheチームにWebSocketのサポートを依頼します。

StropheはBOSH(Bidirection-streams Over Synchronous HTTP)を介してXMPPを実行しますが、 WebSocketのサポートに関する議論 もあります。

Jack Moffitt(コア開発者で上記の本の著者)はWebSocketに興味を持っているようですが、BOSHを介してWebSocketをサポートする必要がある理由についてより強力な理由を提供する必要があります。良い答えがあれば、トレッドに参加してください。

私はちょうど彼らの xmpp、bosh、strophe echobot example を試しましたが、これはうまく機能しました。また、要件に合っているかどうかを確認するために試してみることもできます。

#2と#3については、どちらもxmppとwebsocketをサポートしていると言われていますが、連携して機能するかどうかはわかりません。

XMPPとWebSocketの使用を検討しているアプリケーションの種類は何ですか?

以下は代替案の提案です。

  • プレゼンス、チャット、チャットルームと同等の機能が必要な場合は、Waveガジェットまたはロボットを作成し、 Wave Embed API (デッドリンク、歴史的な目的のために保持)を使用して外部に公開できます。 Waveは実際にはXMPPの上に構築されています。
  • 非常に低遅延のメッセージング機能を単に探している場合は、 AMQPを試してください
  • より単純なメッセージストリーミングを探している場合は、 ここで示したようにUNIXファイルをパイプイン/アウト できます。

私が書いたときに上記の情報のほとんどを手に入れました このブログ投稿 。コメントセクションを時々チェックする場合は、他の解決策が見つかったら更新を投稿します。

24
Makoto

このトピックをカバーする本がまもなく出版されます...

JavaScriptとjQueryを使用したプロフェッショナルXMPP代替テキストhttp://ecx.images-Amazon.com/images/I/51B7VAHw8OL._SL500_AA240_.jpg

しかし、私はあなたがその本を待ちたくないと思っていると思います。だから見てください JSConfからのジャックモフィットのプレゼンテーション 。今朝見ました。 (Jack Moffittは、上記にリンクされている本の著者です。)

関連するライブラリ(JavaScriptおよびCの実装)は Strophe です。

これは非常に実り多い探検エリアですが、非常に生々しいものです。すぐにわかります。 WebSocketにはHTML5が付属していますよね?

3
Nosredna

JSJaC 実装 XMPP Over Websockets 。いくつかのバックエンド実装で動作することが知られています。

  • node-xmpp-bosh-RFC6455をサポートし、0.6.1以降問題なく動作し、必要に応じてSTARTTLSも透過的に使用します
  • wxg-RFC6455をサポートし、問題なく動作しますが、STARTTLSを必要とするサーバーに接続できません(元のwxgにはいくつかの問題があり、Gordinによって修正されました)。
  • ejabberd-websockets-RFC6455をサポートしていないため、機能しません。RFC6455をサポートするように適応させることは、Erlangを知っている人にとっては非常に簡単です(進行中の作業の一部はgithubにあります)
  • Openfire-非公式のプラグインが利用可能ですが、RFC6455のサポートがないため、機能しません
  • Apache Vysper-RFC6455をサポートしていないため、機能しません
  • Tigase-WebSocketサポートに関する既知の作業はありません
  • MongooseIM-Websocketを介したXMPPをサポートするejabberdのフォーク。
3
Stefan Strigler

XMPPサーバーが最初にこれをサポートする必要があるため、なぜWebSocketソリューションを特に求めているのかわかりません。

ただし、利用可能なXMPP JavaScriptライブラリがいくつかあります(私が見る限り、それらはすべてBOSHメソッドを使用しています)。

これらの例は、XMPPプロトコルのオープンソース実装をリストしている XMPP Webサイト から抜粋したものです。

0
MKroehnert

ブラウザ側のJSは、ほとんどがブラウザAPIに依存しているため、WebSocketプロトコルのみを処理できるかどうかはわかりません。まだWebSocketをサポートしているブラウザはほとんどありません:Chrome、Safari5、おそらくFirefox4。 flash/as3に基づく多くの回避策があります(その後、jsはフラッシュコードと通信します)主な制限は、フラッシュが安全な接続をサポートしていないことです(あまりにも悪いです)。

BWT、チェックできます このwebsocket implem オープンソースを提供しますJava websocketクライアントライブラリとxmppのものを扱っているようです。リポジトリを参照すると、基本的なas3websocketが見つかる可能性があります実装。

0
Jason