1

OrbitedをTwistedアプリで動作させることができないようです。軌道に乗ったサーバー(localhost:8001 / static / Orbited.js)からのOrbited.jsを含むTwisted(たとえば、localhost:8000 / page)によって提供されるページがあります。次に、TCPチャットサーバーの例をポート7777で実行しています。Orbited.TCPSocketを使用してチャットサーバーに接続しようとしています。

conn=new Orbited.TCPSocket();
conn.open("localhost", 7777);
conn.send("test\r\n"); //error:  bad readyState

Orbitedがページを提供しているときは正常に機能しますが、twistedが別のポートからページを提供しているときは機能しません。私のorbited.cfgは次のようになります。

[聞く]
http://:8001

[アクセス]
*-> localhost:7777

そして(うまくいった)前に私もこれを持っていました:

[静的]
test = index.html

ここで、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の設定はまさに私がやるべきことです。しかし、私はひどいエラーを取得しています

4

2 に答える 2

4

send()接続が開いた状態になった後でのみ呼び出すことができます。

のハンドラーを配置.onopen()し、.send()そこから実行します。

于 2011-03-11T08:25:56.557 に答える
1

私は過去にOrbitedを使用しました。一般的には機能しますが、セットアップと実行をスムーズにするためのいくつかの癖があります。プロジェクト自体は流動的な状態にあるようです(node.jsに移行しているようです)。これらの両方の点から、回避できるのであれば、Orbitedを使用しないことをお勧めします。

よりクリーンな代替品はありますか?はい、そうです。在庫のTwistedでOrbitedwithWebsocketsをほぼエミュレートできます。これは明らかに新しいブラウザで機能します。古いものはどうですか?ええと、WebSocketをラップし、古いブラウザーのトランスポートとしてフラッシュにフォールバックするオープンソースプロジェクトがあります。セットアップは非常にうまく機能し、実際には、orbitedのようなソリューションを使用するよりもクリーンに感じます。

http://github.com/rlotun/txWebSocketをチェックすると、TwistedのWebSocket実装の現在の状態と、古いブラウザーでフラッシュにフォールバックする方法の例がわかります。うまくいけば、これはOrbitedの代わりにドロップとして機能するのに十分役立つでしょう。

于 2010-09-10T10:10:05.793 に答える