問題タブ [orbited]
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 の彗星
私はPythonでのWebプログラミングにかなり慣れていません。
ブラウザ上でチャットルームを構築することに興味があります。(プロトタイプ用)。私は django をよく知っており、過去に少しひねったことをしたことがあります。
それから私は軌道に出くわしました。文書化はかなり不十分ですが(実際に文書化する資格があるとは思いません)、これらの用語はかなり頻繁に出てくるようです:
- 周回
- ツイスト
- MorbidQ、ActiveQ、および基本的に一連の MessageQueue テクノロジ
orbited の Web サイトでいくつかの例を示しましたが、すべてがどのように連携して機能するかを実際に説明しているようには見えません。
私の質問は次のとおりです。
[listen] ディレクティブにhttp://:9000が表示され続けます。彼らのメイン Web サイトによると、「リッスン セクションでは、Orbited がブラウザ接続を受け入れるために使用するインターフェイスとポートについて説明しています。」私の知る限り、標準ブラウザはポート 80 を使用して通信します。そして、このポートはorbited.jsがコメットテクニック用のサーバーに接続するために使用されていると思いますか? 8000 がブロックされるとどうなりますか? (学校/組織のほとんどのファイアウォールの背後のように)
プロキシという言葉をよく見かけます。このフレームワークの組み合わせに実際のプロキシがどのように適合するかはわかりません
ツイストとオービットの関係。Orbited は、Twisted の上に構築されています (私が間違っていなければ)。では、なぜ軌道上でのねじれのオントップの使用について議論する例が非常に多いのでしょうか? そもそもなぜツイストが必要なのですか?nginx で orbited を使用できますか? (繰り返しになりますが、nginx と orbited を検索すると、proxy という単語が含まれる結果が得られます。これはどのように適合するのでしょうか?)
http://anirudhsanjeev.org/tutorialhow-to-django-comet-orbited-stomp-morbidq-jsio/に関して、著者は xml-rpc サーバーを使用しています。誰かが実際に理由を説明できますか?(まあ、彼は「django ビュー内でリアクター送受信システムを起動することはできない」と言いましたが、そもそもなぜその中でリアクターを実行する必要があるのでしょうか? orbited は twisted の上に構築されていませんか?したがって、それは独自の原子炉を持っていますか?)
Morbidq は、「Morbid は STOMP パブリッシュ/サブスクライブ サーバーであり、クラスター化する可能性はまったくありません。パブリッシュ/サブスクライブ トピックをサポートし、単一ノードとして実行されます」と説明しています。なぜ私たちはこれが必要なのですか?コメットはまさにこのようなことを解決しませんか? 一見似ているように見えるが実際には明確に区別されている一連のテクノロジを組み合わせたチュートリアルを何度も目にするのはなぜですか?
私がやりたいことは、単純な Web チャット アプリケーションを構築することだけです。これを見て、orbited や twisted や morbidq や django などを使うのは面倒かもしれないと思いました。(もちろん、スケーラブルにする予定です)。
私は竜巻を見ました、それは大丈夫ですが、コミュニティの面では小さなイモのようなものです. 非ブロッキング接続を許可することを除いて、実際にはコメットを行いません(IRCでこれを学びました)。コメットの特別なテクニックが本当に必要なのか、それともロング ポーリングで満足できるのか? (単純な Web チャット アプリケーションの場合)
大企業は何を使っている?大企業が適用している標準的なデファクト コメット フレームワークは何ですか? (facebook、gtalk、twitter など?) これらは python で利用できますか?
どんな質問でも助けていただければ幸いです。
macos - OrbitedをOSX10.6にインストールする方法
OrbitedをOSX10.6で動作させようとしています。Linuxへのインストールは簡単でしたが、障害にぶつかったようです。インストール後、オービットサーバーを実行しようとすると、次のエラーが発生します
私はセットアップをひねりました、それはOSX10.6に付属しているものです。これに対する解決策はありますか?前もって感謝します
javascript - JavascriptコールバックはFirefoxで機能しますが、ChromeやSafariでは機能しません
EjabberdとOrbitedを使用していますが、JavaScriptコールバック関数が呼び出されないという問題がいくつかあります。以下は、TCPSocket接続が発生するJavaScriptファイルであり、2つのコールバック関数があります。
onSocketConnect
:これは、OrbitedがXMPPサーバーのポート5222との接続を確立したときに呼び出されます。
onLoginSuccess
xmpp_client.login
:関数が正常に完了すると呼び出されます
私が直面している問題は、接続が正常に行われることですが、SafariやChromeを使用しているときではなく、FireFoxを使用しているときにのみコールバックが呼び出されます。この問題の原因についてはまったくわかりxmpp_client.login
ませんが、ユーザーがログインしてejabberd管理コンソールにオンラインとして表示されるため、メソッドが呼び出されると確信しています。
これは、orbitedをインストールしたときに取得したxmpp.jsの一部であり、リクエストが実際に到達しているかどうかをテストするために、次のようにログインメソッドにアラートを追加しました
今、私はこれが私のコールバックをどのように取得したかについての手がかりがなく、これに関するいくつかの助けを本当に感謝します。
ありがとう
実際、xmpp_client.set_presenceを削除してonLoginSuccessに移動することで、うまくいったようです。loginメソッド呼び出しの後にset_presenceメソッドを追加した瞬間、機能はchromeで失敗します。では、なぜそれがログインに成功したときにコールバックを呼び出さないのでしょうか?
ヘルプ!
python - 周回彗星サーバー用のシンプルなツイストレシーバー
珍しいリクエストがあります。
新しいアパートに引っ越したばかりで、1週間以上インターネットに接続できません。オンラインドキュメント用に携帯電話を使用してアプリケーションを開発しようとしています。引っ越す前に、このビデオを見つけました(vodpod.com/watch/4071950-building-real-time-network-applications-for-the-web-with-twisted-and-orbited-part-001?u=snaky&c=snaky)軌道に乗った/ねじれた基本についてのpyconから、残念ながら私はそれがどのように行われたかを忘れてしまい、私の電話はビデオを再生しません。
誰かが私のためにビデオの最初のビットを見て、最初のPythonの例の1つを投稿できますか?プレゼンターには、telnetおよびWebクライアントからのチャットメッセージを中継できる単純なリアクター(私は思う)があります。基本的な例が必要です。各イベントメソッドに「パス」が含まれている場合でも、そこから続行できます。
python - Windows で軌道開発環境をセットアップする
Python orbited と django を使用してコメット アプリケーションを開発しています。しかし、開発環境のセットアップ方法がわかりません。誰でも私を助けてもらえますか?ドキュメンテーションとチュートリアルを見ました...しかし、それらは紛らわしいことがわかりました...私が見ているのは、ウォークスルーのような情報です。
twisted - OrbitedをTwistedアプリで動作させる
OrbitedをTwistedアプリで動作させることができないようです。軌道に乗ったサーバー(localhost:8001 / static / Orbited.js)からのOrbited.jsを含むTwisted(たとえば、localhost:8000 / page)によって提供されるページがあります。次に、TCPチャットサーバーの例をポート7777で実行しています。Orbited.TCPSocketを使用してチャットサーバーに接続しようとしています。
Orbitedがページを提供しているときは正常に機能しますが、twistedが別のポートからページを提供しているときは機能しません。私のorbited.cfgは次のようになります。
そして(うまくいった)前に私もこれを持っていました:
ここで、index.htmlはlocalhost:8001 / static / Orbited.jsを取得する別のページであり、localhost:8001/testからアクセスされました。
別のポートのツイストサイトからのリクエストを処理するために設定ファイルを変更するにはどうすればよいですか?
アップデート
接続を開こうとする前にOrbited.settings.portを8001に変更しようとしましたが、エラーが発生しました:「安全でないjavascriptがURL http:// localhost:8000 / pageのフレームからURLhttp://localhostのフレームにアクセスしようとしました:8001 / static / xsdrBridge.html#1。ドメイン、プロトコル、およびポートは一致する必要があります。」
うーん、また、私は軌道に乗ったwikiを見たところですが、どうやら、Orbited.settings.portの設定はまさに私がやるべきことです。しかし、私はひどいエラーを取得しています
comet - コメット サーバーのストレス テストを行う方法は?
サポートできる接続数をテストしたいと思います。
私は長いポーリングではなく、軌道、具体的にはストリーミングを使用しています。
comet - Stomp - それぞれが一意のハンドラーを持つ複数のサブスクリプション
コメット機能に Stomp / Orbited を使用しています。
複数のチャンネルを扱うために、私はこれをやっています:
if (frame.headers['destination'] == '/thisFeed/') { //thisFeed を処理する }
if (frame.headers['destination'] == '/thatFeed/') { //thatFeed を処理する }
....それは大丈夫だと思います。しかし、ロード時にフィードをどのように処理したいのかわからない場合はどうすればよいでしょうか? 私はこのようなことができるようにしたい:
stomp.subscribe('someOtherFeed', someOtherFeedHandler);
そうすれば、サブスクライブするときに、そのときだけハンドラーを定義できます。
python - ジャンゴ + オービット/ストンプ
チャットのようなものを書くために、軌道/ストンプサーバーと一緒にdjangoサーバーを使用しています。一部のユーザーが orbited に接続しているとします。そのうちの 1 つが軌道から切り離された場合、どうすれば他の人に通知できますか? 私は次のコードを試したことを意味します(クライアント側のjavascript - おそらくこれはすでに間違っています。サーバーはプッシュを行うべきですよね?):
一緒に
しかし、これはまったく機能しません。それから私は使用しました
しかし、やはり目に見える効果はありません。end()
また、djangoサーバーへのajax投稿を行う別の関数に置き換えました。しかし、stomp.onclose
再び何もせず、window.onbeforeunload
パイプが壊れてしまいます。
したがって、これらは「クライアントが終了する前にメッセージを残す」というアイデアを実装する試みでした。しかし、それは失敗しました。
私がこれを正しく行っているかどうかさえわかりません。ユーザーの離脱についてオービット/ストンプユーザーに通知する方法はありますか? すべてのアイデアをいただければ幸いです。
編集:別の方法があるかもしれません。誰かの接続が閉じられたときに、ユーザーのキーを使用してアプリケーションへの http コールバックを作成するように軌道サーバーを構成できることを読みました。残念ながら、それを行う方法の説明はありませんでした。誰も答えを知っていますか?
django - ユーザーへの Django プッシュ HTTP レスポンス
現在、Django で記述された非常に単純な Web アプリケーションがあり、アプリケーションにコールバック/プッシュ通知サービスのようなものを実装したいと考えています。
例: 1 人のユーザー (クライアント) がサーバーに写真をアップロードすると、サーバーは接続されている他のすべてのユーザーにその写真について通知します。
ユーザーが写真をアップロードしたときに Django シグナルを使用してコールバックを生成できると思いますが、Django に他のユーザーに通知を投稿させるにはどうすればよいですか? この通知は、アラートの場合もあれば、アップロードされた画像を表示する新しい HTML に他のユーザーを単にリダイレクトする場合もあります。私は後者を好みます。
私は Web プログラミングの初心者なので、comet や long-polling などを実装する「リアルタイム Web アプリケーション」が必要であるという法案にこれが当てはまるかどうかはわかりません。私のアプリケーションは、テキスト ファイルではなく画像ファイルを送信する点を除いて、チャット アプリケーションのアプリケーションと似ています。そのため、彗星の解決策がうまくいくと思いました。Orbited と Twisted を非常に長い間調べてみましたが、Django で実装することができませんでした。おそらく、コメット ソリューションで必要なことを達成する方法を理解していないためです。より経験豊富なプログラマーに、これを達成するために何が必要なのか、または正しい方向に向かっているかどうか (comet を使用) を指摘してもらいたいと思います。
チュートリアルのリンクやガイドだけでなく、進め方に関するヒントやヒントを教えていただければ幸いです。