問題タブ [autobahn]
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.
javascript - AutobahnJS による対称 RPC
AutobahnPy サーバーと AutobahnJS クライアントで WAMP over Websocket を使用します。サーバー側からクライアントで PRC メソッドを呼び出したいと思います。RPC を対称にしたいと思います。対称 RPC の例がありますが、両側は Python で実装されています。
Javascriptクライアントでそれを行うことは可能ですか? ドキュメントとソースを調べたところ、registerForRpc
functionに相当する Javascript が見つかりません。
android - Android アプリが Tornado 3.1 で例外をスローします。Tornado 2.1 に対応
Web サーバーと通信し、サーバーからのプッシュ通知を必要とする Android アプリを開発しています。
このアプリは、Web サーバーとして Tornado 2.1 を使用し、Android クライアント アプリで weberknecht Websockets を使用して、期待どおりに正常に実行されます。
ただし、Tornado 3.1 では、「websocket.connect()」メソッドを呼び出そうとすると、同じアプリが常に例外を返します。
Tornado 3.1 を使用したクライアント アプリの例外:-
接続に失敗しました: 不明なステータス コード 426 原因 WebSocketException (id=830032153816)
weberknecht が最新の Tornado 3.1 と互換性がない可能性があることを stackoverflow で読みました。したがって、私は Autobahn Web ソケットに移行しました。しかし、autobahn websocket jar をインポートすると、アプリケーションは「接続」メソッドでクラッシュします。jwebsocket クライアントも試してみました。私も同じ問題に直面しています。
コードに何か不足していますか? Weberknecht は Tornado 3.1 と互換性がありませんか? Tornado 3.1 を使用するための代替手段は何ですか? または、Tornado 2.1 を続行する必要がありますか?
私のアプリケーションコード:-
}
私のTornado Webサーバーコード:-
javascript - AJAX と autobahnjs
最初にサーバーからの AJAX 呼び出しを介して要求され、次に autobahnjs サブスクリプション (変更通知を受け取る) をリッスンして更新される Web ブラウザーにアイテムのリストを表示しています。
一部のアイテム (ジョブのリスト。数百ミリ秒で完了する場合もあれば、かなり時間がかかる場合もあります) は、Web ページの読み込み時に更新される場合があります。これは、新しいジョブが送信された直後にジョブ リストが表示されるためです。
私の問題は、サブスクリプションがいつアクティブになるかわからないことです。そのため、AJAX 応答を受け取った後、サブスクリプションがアクティブになる前に、アイテム リストが変更されることがあります (その結果、アイテムは更新されません)。
AJAX 呼び出しの前にサブスクリプションを開始しても、問題は部分的にしか解決されません。これは、アイテム リストがサブスクリプションによって以前に発生した変更を上書きする可能性があるためです。これを行うには、サブスクリプションがいつアクティブになるかを確認する必要もあります。
autobahn - サブスクリプションの成功/失敗をクライアントに通知する方法は?
「queue:1.2.3」を購読しています。クライアントは、サブスクライブが成功したかどうかをどのように知ることができますか? サーバーがクライアントに応答するメカニズムはありますか?
以下は、サブスクリプションをテストするために使用している簡単なプログラムです。サーバー側で何を表示すればよいかわかりません。
この投稿は私の質問に触れているように感じます: Autobahn でサブスクライブでディスパッチを呼び出す
python - Autobahn/Twisted を使用して Tornado HTTP Handler で Websocket 接続を確立する
問題: クライアントが http 要求を送信します。その HTTP 要求に対して、tornado サーバーが外部サーバーへの websocket 接続を開き、時間の経過とともにデータを取得するようにします (データベースに保存する必要があるデータ)。また、トルネード サーバーへの複数のユーザー リクエストを処理できる必要もあります。
これが私の実装です
そして、これが私のソケット接続クラスです:
ここで、reactor.run() は Tornado Web サーバーへのそれ以上の http 要求を防止するため、websocket の作業が完了して閉じられるとすぐに、reactor.stop() を試しました。しかし、原子炉を再起動することはできないことがわかりました。
アプローチのより良い代替手段や、私が見逃している可能性のあるものはありますか..
python - Autobahn/Twisted WebsocketClientProtocol クラスをオーバーライドする
WebSocketClientFactory クラスをオーバーライドして、ジョブ キューが受信データで満たされるようにしたいと考えています。これが私が試している接続コードです
そして、ここに私のソケットクラスがあります:
しかし、私はエラーが発生しています
メイン スレッドとその中で作成した websocket の間でキューを共有する方法はありますか?
python - Autobahn Python でのイベント処理
my_flag が True に設定されるとすぐに、websocket クライアントに接続を閉じてもらいたいです。これが私のソケットクラスです:
現在、my_flag は、プログラム実行の別の場所 (別のスレッド内) でしばらくすると true に設定されます。で待つ代わりに
ループのようなものですが、定義して websocket クラスにアタッチできるイベントはありますか? つまり、my_flag が true に設定されたときに起動される関数