問題タブ [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.
python - ピア python websocket による接続のリセット (ErrNo 104)
私は Autobahn WS サーバーを実行しており、Python websocket-client ( https://pypi.python.org/pypi/websocket-client/ ) を使用してクライアントから接続しています。
私のクライアントコードはとてもシンプルです:-
これはしばらくの間は正常に機能しますが、その後エラーが表示されます:-
エラー: [Errno 104] ピアによって接続がリセットされました
調べてみると、何らかのタイムアウトエラーに関連しているようです。誰でもこれを修正する方法を提案できますか?
アップデート
サーバー側を確認するためだけに、WS サーバーはアウトバーンのドキュメント ( https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/broadcast/server.py ) のストック "ブロードキャスト" の例を単純に使用しています。したがって、クライアントから受信したメッセージは、接続されているすべてのクライアントにエコー バックされます。
UPDATE2
デバッグのヒントをありがとう。私はこれを実行し、エラーが発生したとき、これはデバッグ トレースからの出力です:-
接続が切断されたのはなぜですか? エラーは再現可能で、約 10 分後に発生します。実行ごとに同じ時間 (~ 5 時間)。
python - ねじれたアウトバーンで異なる URL を使用するにはどうすればよいですか?
竜巻のようなものが必要です。各 URL の各 Websocket ハンドラ。たとえば、ws://localhost/url1、ws://localhost/url2 という異なる URL があり、それぞれに個別のハンドラーが必要です。出来ますか?WebSocketServerFactory に URL を設定しようとしましたが、うまくいきませんでした。
javascript - バックボーンで AutobahnJS (WebSockets) を切り離す
ユーザーがこの検索で何かを書くと、アウトバーンを使用して検索フォームで指定されたテキストをサブスクライブします(たとえば、「foo」を検索し、「foo」をサブスクライブします)。
アウトバーンロジックを分離するにはどうすればよいですか? 現在私のビューでは、ユーザーが送信をクリックすると、次のことを行います-
そして、私のビューでは、コレクションに「追加」を聞いて、結果ごとにビューを作成してレンダリングします。
私のコードはうまく構造化されていないと思います -
1. 「SearchFeed.subscribe」は正しい場所にありますか? ビューでこのコードを実行しても問題ありませんか? そして多分それはモデルにあるべきですか?
2. コレクションの変更 (サブスクライブに渡し、SearchFeed がそれを変更し、「追加」をリッスンする) は正しい方法ですか?
javascript - AutobahnPython を使用したツイスト パースペクティブ ブローカー
私はここで自分の快適ゾーンから抜け出し、どうやってログインすればよいのか少し混乱しています。
Autobahn は Python サーバーへの RPC 呼び出しを使用する方法を提供しますが、Twisted はクライアントで Twisted を使用する方法に関するドキュメントを提供するだけのようです。
私が意味することを適切に説明するために、これはコードです:
Javascript では、次のように RPC 関数を呼び出すことができます。
sess.call(url, user, pass)
Python クライアント コード:
Python サーバー コード:
基本的に、RPC経由でJavascriptでログイン呼び出しにアクセスできるようにする方法を見つける必要があるだけですが、その方法がわかりません.Googleはオプションを提供していません.
python - アウトバーンPython サーバー HTML5 フロントエンド
この AutobahnPython サーバーを正常に稼働させています。 https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/streaming/streaming_server.py
Web カムのビデオとオーディオをキャプチャするための HTML5 フロント エンドを接続したいと考えています。HTML5 で作成したばかりのソケットを介して、HTML5 Blob を実行中の python ソケット サーバーに送信するにはどうすればよいですか?
sendMessageですか? https://autobahnpython.readthedocs.org/en/latest/websocketbase.html#autobahn.websocket.WebSocketProtocol.sendMessage
python - Twisted (または Autobahn) を使用して socket.io サーバーに接続するにはどうすればよいですか?
Python Twisted クライアントを使用して socket.io (node.js) サーバーに接続する方法を見つけようとしています。サーバーは私が書いたわけではないチャットサーバーなので、私はそれを制御できません。主に TCP 接続など、いくつか試してみましたが、正常に通信するには Websockets インターフェイスを使用する必要があることがわかりました。
テストのために、socket.io チュートリアルのコードhttp://socket.io/#how-to-useをサーバーに使用しました。
クライアントには、このチュートリアルのサンプル コードを使用しましたhttp://autobahn.ws/python/tutorials/echo/ : (コールバックが一致しないことはわかっていますが、最初に接続するかどうかを確認したいだけです。そうではありません)。
これは、接続されるかどうかを確認するためのものです。問題は、socket.io サーバーが次
destroying non-socket.io upgrade
のように言うことです: 、クライアントが適切な UPGRADE ヘッダーを送信していないと推測していますが、よくわかりません。
私は何か不足していますか、それとも Websocket の実装はライブラリ間で異なりますか?それらが通信するには、いくつかの掘り下げを行う必要がありますか? とても簡単なはずだと感じました。私の質問は、接続するためにクライアントで何を変更すればよいですか (ハンドシェイクを正常に完了し、フレームの受け入れ/送信を開始します)?
最後に、Twisted を使用したいと思いますが、他の提案も受け付けています。最も簡単なのは socket.io クライアントを作成することだと理解していますが、私は Python しか知りません。
編集:
私はこれを、socket.io が non-socket.io 接続を接続したくないと考えています。これは奇妙なことです。誰かが回避策やアイデアを知っている場合は、共有してください。