問題タブ [primus]
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 - クライアントが巨大な websocket パケットを送信するのを防ぐにはどうすればよいですか?
ブラウザとノード サーバー間の通信に WebSocket を使用する Web アプリケーションを作成しています。
デバッグ コンソール (F12) を開くと、ソケット インスタンスにアクセスして書き込むことができます。
例えば、socket.send('packetname', 'data')
誰かがコンソールを開いてこのようなものを書くのを妨げているのは何ですか?
socket.send(new Array(99999));
サーバーに送信されるこのデータはすべて膨大な量になる可能性があり、そこに到達するまでに、帯域幅はすでに使用されており、すでに処理されています. もちろん検証はありますが、その時点では手遅れであり、リソースはすでに処理に費やされています。
また、誰かが最初の要素が代わりに巨大な配列である配列を送信する可能性があるため、配列の長さを確認することもできません。バイトサイズを計算する方法はないと思うので、データを文字列化してサイズを確認するのが最善の方法だと思います (これは非常に遅いです)。
私のパケットはすべて非常に小さいです。特定のサイズを超えるパケットがサーバーに送信されないようにする方法を探しています。これは可能ですか?
c# - primus websocket の c# 実装
C# を使用して接続したい Web サーバー (nodeJs) があります。サーバーは primus websocket (javascript) からの接続を受け入れます。C# 用の実装を探していますが、存在しないようです。
サーバーに接続する別の方法を知っている人はいますか?
ありがとうございました。
node.js - Polymerとnodeを使ったリアルタイムチャットアプリ
Polymer をフロントエンドとして使用するノード アプリケーションがあります。アプリは、HTTP2 を使用して HTTP などを処理する nginx リバース プロキシの背後で実行されます。署名付き Cookie で Cookie セッションを使用しています。
ここで、アプリに「リアルタイム チャット」を追加する必要があります。2016年は簡単だと思っていたのですが… 間違っていました。
私の最初の寄港地はプリムスでした。しかし、私にはよくわからないことがあります:
- ノードサーバーを再起動するとどうなりますか? すべてのクライアントを再接続する必要がありますか?
- クライアントは特定のイベント タイプに「登録」できます (Primus/Websockets などを介して受信することになっています)。そのため、開かれた各「タブ」には独自の ID が必要です。サーバーが再起動され、クライアントが再接続された場合、サーバーは「サブスクリプション」のリストを再利用できますか? (これには、クライアントが同じ「ID」を持っている必要があります)
私が気付いていない、これらすべてに対する標準的な解決策はありますか?
node.js - feathersjs-primus を使用して websocket 接続をセットアップする方法
次のリンクからフェザー js + primus で websocket をセットアップしようとしています: https://docs.feathersjs.com/real-time/primus.html。しかし、サーバー側で primus から spark インスタンスを取得する方法がわかりません。以下は私のサーバーコードです:
上記のコードでは、サーバーは create() メソッドでクライアントからメッセージを取得できます。しかし、そのメソッドで primus から spark インスタンスを取得するにはどうすればよいですか? spark.write
メソッドを使用してメッセージをクライアントに送り返したいと考えています。
以下は、フェザー サービスを構成するためのサーバー コードです。
以下のコードは、サーバー側でイベント リスナーを登録するために使用されますが、クライアントからイベントを受け取ることはできません。
クライアント コードでは、以下のコードを使用してサーバーにメッセージを送信します。
上記のコードの何が問題なのですか?
node.js - Primusミドルウェアを使用してsparkインスタンスを取得する方法
以下のように Primus websocket サービスをセットアップしました。
それは正常に動作します。上記のコードでは、spark.write
応答メッセージをユーザーに送信するために使用しています。今、ミドルウェアで使用できるように変換したいと考えています。コードは次のようになります。
doStuff() メソッドで、spark インスタンスからクライアントにメッセージを送り返すにはどうすればよいですか?