問題タブ [wamp-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Poloniex プッシュ API への接続
Poloniexの Push API に接続したい。彼らのページには、次のように書かれています。
プッシュ API を使用するには、wss://api.poloniex.com に接続し、目的のフィードを購読します。
wss = WebSocket セキュア -> SSL 保護
また、Node.js と Autobahn|JS の例も示しています。
ただし、JavaScript は使用したくなく、代わりに C++ を使用します。Autobahn|CPPと呼ばれる C++ 用の Autobahn-Library もあります。私はそれをインストールし、サブスクライバーのサンプル コードを少し変更して実行しようとしました (基本的には、アドレスとポートをハードコーディングしただけです)。
ここで説明することがいくつかあります。IP アドレス173.236.42.218 は、 api.poloniex.comにping するだけでわかりました。
ポート 443 は標準の SSL ポートです。8000 である標準の WAMP/WebSocket ポートを使用しようとしましたが、サーバーはそれを受け入れません。80も受け付けません。
したがって、プログラムを開始すると、出力は次のようになります。
ioサービスを開始しています
サーバーに接続しました
その後、何も起こりません。そのため、WS ハンドシェイクが実行されるsession_start()でコードをスタックする必要があります。これは、80 行目のwamp_session.ippを調べるとわかります。
私の意見では、問題は、API が安全な接続 (ws s ://) を使用したいということです。このコードは SSL で暗号化された接続を作成しようとしていないようで、安全な接続が必要であることをセッションに伝える方法がわかりません。
編集:この質問では、著者は、WebSocket プロトコルを使用する前に最初に http-requestをアップグレードする必要がある場合、Autobahn は混合 http/wamp サーバーを処理できないと述べています。Poloniex がこのような混合型を使用していることは知っていますが、Autobahn| で API にアクセスしようとしました。JSは既に正常に動作し、アップグレード リクエストも送信されます。多分これはアウトバーンです| CPPの問題?
編集 2:上記が当てはまる場合、Http-Update-Request を自分で送信し、SSL 暗号化を接続に入れることは可能ですか? ライブラリに干渉する可能性があるため、わかりません。
javascript - AutobahnJS クライアントでクロスバー ルーター サーバーに接続するときに、クライアントの役割/AuthID を指定する方法は?
複数のロールを持つクロスバー ルーター サーバーをセットアップしましたが、各ロールには異なる登録/呼び出し/サブスクライブ/公開のアクセス許可があります。
次に、AutobahnJS クライアントを使用してルーターに接続します。しかし、 API リファレンス ページを検索した後、クライアント ロール (またはルーターがクライアントのロールを決定するための AuthID) を指定する方法がわかりません
。誰もこれについて手がかりを持っていますか?
(PS デフォルトの「匿名」ロールで問題ありません。)
ruby - Ruby wamp-client gem - crossbar.io への接続
私はRubyが初めてです
wamp-client gem を使用して crossbar.io ルーターへの接続を確立しようとしています。クロスバーには、クロスバー テンプレート (バックエンドとしての Python) を介して作成されたすべてのデフォルト設定とアプリケーションがあります。ブラウザ経由で接続しているときはすべて問題ありませんが、単純にルビーを使用しようとしているとき
「handle_opening_handshake_response: Unhandled opening handshake response # (Net::WS::Error)」エラーがあります。ハンドシェイクを処理するには、WAMP ルーターが HTTP 101 スイッチ プロトコルを送信する必要があることを知っていますが、それは行われません (wireshark では表示されません)。私を助けてください。
クライアントのリクエスト:
ルーターリターン:
network-programming - WAMP プロトコル - 複数のマシンでのルーターのスケールアウト
私は、 WAMPルーターを複数のマシンにスケールアウトすることについて多くのことを考えてきました。特に、バックアップ システムを持たずに 1 つのシステムに依存することは、ライブ シナリオでは少し難しいように思われるためです。
複雑なマスター ノードの選択とそれに付随するすべてを行わないようにするために、私は次のアイデアを思いつきました。フィードバックを得たいと思っています。
ルーターは、次のような情報を共有する必要があります。
認証
- セッション ID
RPC
- 単純な登録を使用するときに、クライアントが既に uri に登録されているかどうかを確認します
- パターンベースの登録のための転送呼び出し
- メタ API 情報
パブ/サブ
- ネットワーク内のすべてのクライアントにイベント メッセージを提供する
- メタ API 情報
すべてのルーター間に接続が必要です。接続とトラフィックを低く抑えるために、リング インフラストラクチャを用意することをお勧めします。
すべてのルーターには、次のルーターに接続される独自のクライアントがあります。クライアントから送信された CALL または PUBLISH の受信メッセージ ID を格納することにより、ルーターはラウンドトリップを識別できます。別のルーターからの着信はそのまま処理されます。Yields は正しい INVOCATION.Request|id を持ち、正しいルーターに転送できます。
ルーターの紛失
このインフラストラクチャでは、すべてのルーターに対して静的で同一の構成が必要になります。これは、動的スケーリングが機能しないことを意味しますが、そのためリーダーの選出は必要ありません。ルーターが強制終了された場合、次のルーターはルーターのリストから接続されます。一定のポーリングにより、ルーターがオンラインに戻ったかどうかを確認できます。
私はこれについて深い調査を行っていません。ですから、そのためのインプットをいただければ幸いです。
php - LAN 内の別のコンピュータから WampServer 1.7.3 経由でデータベースにアクセスするには?
Web アプリケーションは、WampServer 1.7.3 のローカル コンピューターでホストされています。LAN 経由で別のコンピュータからデータベースにアクセスする方法。
python - クロスバー/アウトバーンを使用したユーザー通知に使用する認証?
現在、クロスバー/アウトバーン経由で Websockets を使用してユーザー通知システムを実装しようとしています。複数のテストを行い、ドキュメントを確認しましたが、次のワークフローを機能させるための解決策があるかどうかはわかりません。
- ユーザーは Web アプリでサインイン -- これは JWT を介して行われます
crossbar
フロントエンドは、実行中のインスタンスへの Websocket 接続を確立します。- フロントエンドは、ユーザーの通知専用の URI にサブスクライブしようとします。つまり
com.example.notifications.user.23
、com.example.user.23.notifications'. Where
23` はユーザー ID です。 - ユーザーの JWT がチェックされ、ユーザーがサブスクリプションへのアクセスを許可されているかどうかが確認されます。
- アクティビティが生成されて通知が発生すると、バックエンドはユーザー固有の URI を発行します。
ステップ 3 では、現在サポートされている認証方法に必要なものがあるかどうかわかりません。理想的には、URI パターンに適用できる (クロスバー内に JWT オーセンティケーターを実装するために) カスタマイズできる認証メソッドが必要ですが、サブスクライブしているユーザーにパターン全体へのアクセスを許可することはできません。これは動的認証メソッドによって部分的に解決されますが、後半が欠けています:
例(私の理想的なワークフロー):
- ユーザーが URI へのサブスクライブを試み
com.example.user.23.notifications
ます。 - URI の一致( http://crossbar.io/docs/Pattern-Based-Subscriptions/
com.example.user..notifications
のワイルドカード パターン) - 認証トークンが検証され、ユーザーには へのアクセスのみ
com.example.user.23.notifications
が許可されます。
上記は簡単な方法で達成できますか?私が知る限り.crossbar/config.json
、すべてのユーザー ID の URI 順列を含む を何らかの方法で生成し、新しいユーザーごとに新しい構成を自動的に生成する場合にのみ可能です。
どんな助けでも大歓迎です!