問題タブ [sockjs]

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.

0 投票する
1 に答える
3127 参照

python - CPU使用率が高くならないようにするには?

個別に実行される を作成zmq_forwarder.pyし、アプリからのメッセージを sockJS 接続に渡します。現在、フラスコ アプリが zmq 経由で sockJS からメッセージを受信する方法に取り組んでいます。私の内容を貼り付けていzmq_forwarder.pyます。ZMQ は初めてで、実行するたびに 100% の CPU 負荷を使用する理由がわかりません。

ご覧のとおり、4 つのソケットをセットアップしました。アプリはポート 5561 に接続してデータを zmq にプッシュし、ポート 5562 に接続して zmq から受信します (ただし、zmq によって送信されたメッセージをリッスンするように実際に設定する方法をまだ考えています)。一方、sockjs はポート 5564 で zmq からデータを受信し、ポート 5563 でデータを送信します。

zmq.DONTWAITメッセージの受信を非同期でノンブロッキングにすることを読んだので、追加しました。

CPU をオーバーロードしないようにコードを改善する方法はありますか? 目標は、zmq を使用してフラスコ アプリと websocket の間でメッセージをやり取りできるようにすることです。

0 投票する
0 に答える
758 参照

spring - IE8 との SockJS セキュア接続

午後の皆さん。sockjs と Spring4 に問題があります。セットアップのどちら側が問題を引き起こしているのかわかりません。問題は、IE8 が HTTPS 経由で Spring バックエンドへの接続を開くことができないように見えることです。

私はこの例を実装しようとしています: https://demo.rasc.ch/spring4ws/ 私がしようとしているリンクはチャットです。彼のソースへのリンクはこちら: https://github.com/ralscha/spring4ws-demos

彼のソースに加えた唯一の変更は、stomp.min.js ではなく、jquery-1.9.1、Spring 4.0.0、および完全な stomp.js を使用していることです。

チャット クライアントのインデックス ページの sock and stomp コードは次のとおりです。 )[0];

整形でごめんなさい。

春に私がしたことは、webconfig Javaファイルを2つのファイルに分けることだけでした

WebConfig は標準です。WebMvcConfigurerAdapter を拡張します。

}

WebSocket は WebSocketMessageBrokerConfigurer を実装します。

初期化子も基本です。

また、Eclipseを使用してTomcat 7でこれを実行しています。埋め込まれたTomcatではありません。

私が抱えている問題は、IEでsock内のreadystateが永続的に設定されていることです。私は xhr/xdr ポーリングを完全には理解していませんが、それが問題だと思います。

sockjs 側または spring 側で IE を https 経由で動作させるために他に必要なことはありますか?

0 投票する
5 に答える
10904 参照

apache - Meteor/SockJS と WebSocket の apache プロキシを設定するには?

meteor アプリ用の apache プロキシがあり、apache と meteor は 2 つの別々のマシンにあります。apache は多くの実際の Web サイトにサービスを提供する必要があり、リソースが限られているため、このマシンに meteor アプリをインストールすることはお勧めできません。

ただし、プロキシ経由で外部から接続しようとすると、WebSocket ハンドシェイクは応答コード 400「WebSocket にのみアップグレードできます」で失敗します。LAN 内から meteor マシンに直接接続すると、すべて正常に動作します。WebSocket が失敗すると、SockJS/Meteor は XHR にフォールバックしますが、残念ながら、問題のアプリにいくつかのバグが発生します。したがって、ほとんどの場合、WebSocket が機能する必要があります。

ここに記載されているパッチを使用してApacheのインストールにパッチを適用しました:https://stackoverflow.com/a/16998664 うまくいったように見えましたが、何も変わりませんでした...

現在、私のApacheプロキシディレクティブは次のとおりです。

そして、何が問題を引き起こしているのかさえわかっています。Apache プロキシがヘッダーをいじります。私のマシンを離れる問題のパケットの元の要求ヘッダーは次のようになります。

パケットは次のように Apache プロキシから転送されます。

したがって、「アップグレード」が削除され、「接続」が変更されるため、websocket ハンドシェイクが失敗します。これで、RequestHeader ディレクティブを使用して、常に「アップグレード」を「websocket」に設定しようとすることができました。しかし、これは正しくないと思います。他の問題が発生すると思います。この問題に対する本当の解決策があるかどうか疑問に思っていました。それとも、これはhttps://stackoverflow.com/a/16998664からのパッチで対処する必要があり、それを適用すると何か問題が発生したのでしょうか?

私が読んだことから、nginxに切り替えると、このセットアップが簡単になる可能性があります。私はこれを検討しますが、nginxは他のことをより複雑にし、多くの時間を費やすため、可能であればApacheでこれを行いたいです.

0 投票する
1 に答える
1070 参照

header - ActiveMQ - セレクターを使用した STOMP サブスクライブが失敗する

STOMP サブスクライブでセレクターを実装するためのクライアント側のセットアップ。

サブスクライブは、フレームのコンソールに記録された次のようなメッセージを返します。

セレクターが原因で、メッセージが除外されているはずではありませんか? 私のセレクターの構文?

構文を以下に変更しても機能しませんでした。この場合、メッセージはまったく返されませんでした。

私は何が欠けていますか?

0 投票する
3 に答える
21600 参照

websocket - Engine.io または SockJS、どちらを選択しますか?

最近、メモリ リークとスケーリングの問題に関して、Socket.io で問題が発生しました。私が Socket.io を使用することを決定したのは、1 年以上前に、それが間違いなく使用するのに最適なライブラリであったときです。

Socket.io が多くの問題を引き起こしているため、その間に利用可能になった代替手段を探すのに時間を費やし、Engine.io と SockJS の両方が一般的に私に適していると考えています。しかし、私の意見では、どちらにもいくつかの欠点があり、どちらを選択すればよいかわかりません。

Engine.io は基本的に Socket.io の完全な軽量バージョンであり、私が必要としないすべての機能が含まれているわけではありません。デフォルトのロジックに満足できず、Socket.io が提供するルームやその他の機能を使用するつもりがなかったので、Socket.io 用に独自の再接続およびハートビート ロジックを既に作成しました。

しかし、私の意見では、Engine.io の主な欠点は接続の確立方法です。クライアントは低速の jsonp-polling から開始し、より優れたトランスポートをサポートする場合はアップグレードされます。Websocket をネイティブにサポートするクライアント (数は着実に増加) が、古いブラウザーを使用するクライアントよりも接続手順が長く不安定であるという形で不利であるという事実は、それをどのように処理すべきかについての私の感覚と矛盾します。

一方、SockJS は、私が望むとおりに接続を処理します。私が読んだところによると、Engine.io には現時点でいくつかの問題がありますが、かなり安定しているようです。

私のアプリは単一ドメインの Nginx ルーターの背後で実行されているため、SockJS が提供するクロスドメイン機能は必要ありません。ただし、この機能を提供するため、SockJS はクライアントの Cookie データをまったく公開しません。これまでのところ、Cookie とクエリ文字列トークンを介して Socket.io で 2 要素認証を行っていましたが、これは SockJS では不可能です (Engine.io では可能です)。

私は利用可能なものと両方の長所と短所をほとんどすべて読みましたが、これまでのところ、特に Engine.io についてはあまり議論または公開されていないようです (ここでは engine.io でタグ付けされた質問は 8 つしかありません)。

  • 2 つのライブラリのどちらを好みますか?また、その理由は何ですか? それらを本番環境で使用していますか?

  • どちらがより積極的に維持される可能性が高く、将来的に他のものよりも大きな利点を持つ可能性がありますか?

0 投票する
0 に答える
424 参照

cordova - Phonegap/Cordova Android アプリで SockJS クライアントを作成するにはどうすればよいですか?

SockJS で動作する Cordova (3.3) アプリを取得しようとしています。私は本当に「本物の」ウェブソケットを望んでいます。つまり、XHR (など) へのフォールバックはできるだけ少なくする必要があります。いろいろなプラグインなどを調べてみましたが、うまくいく組み合わせがまだ見つかりません。これまでのところ、ネイティブ WebSocket を備えた Android 4.4x デバイスのみを動作させることができます。

この目的のための「既知の適切な」プラグインはありますか?

もしそうなら、SockJS-client が websocket の作成を試行して失敗するのではなく、それらを使用して初期化し、その後にさまざまなポーリング方法が続くように、それらを Cordova アプリに配線するにはどうすればよいですか?