問題タブ [heartbeat]

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 に答える
1848 参照

ios - iPhoneのカメラレンズで心拍変動を測定

AppStoreAzumioのようStress Checkに、iPhone のカメラを使用して (カメラのレンズに指を置くことで) 心拍変動を計算するアプリや、同じ方法で bpm の測定のみを提供するアプリがいくつかあります。この機能を iOS アプリに実装するためのアルゴリズム、またはいくつかのサンプル コード (必ずしも Objective-C コードである必要はありません) に適したアルゴリズムを探しています。

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

java - Java RMI ハートビート タイム プロセス ループ

RMIで管理するIDロックシステムを実装しようとしています。ほとんどの場合、クライアントが ID を入力すると、その ID が RMI サーバーに送信され、クライアント ID とサイクル カウンターと共にリストに格納されます。

サーバーは、30 秒後にすべてのサイクル カウンターをインクリメントします。クライアントがロック解除メッセージを送信しない限り、クライアントはハートビートを送信し、サイクル カウンターを 0 に更新します。サイクル カウンターが 3 以上の場合、サーバーはクライアントが不適切に切断されたと見なし、ロックを解放します。 ID。

私はオンラインで調査してきましたが、これを行うための非常に具体的な方法をたくさん見つけましたが、あいまいすぎるか、1 つのプロジェクトのニーズに固有すぎると思われる方法が多すぎます。これを行う方法についての一般的な考えはあると思いますが、物事をまっすぐにしたいと思います:

1 -ほとんどの実装では、この「サイクル更新」ロジックが別のスレッドの無限ループで発生します。これは正しいです?私の RMI サーバーの Main クラスはほとんど進行していないように思えますが、そこにループを実装できるかもしれません。

2 -スレッドが正しい方法である場合、いつスレッドを立ち上げますか? これを達成するために必要な特別な方法はありますか? オンラインで調べたところ、スレッドを使用するように言っているサイトがたくさんありましたが、スレッドを実行する場所の良い例を示しているサイトはありませんでした。

ご協力いただきありがとうございます。私はまだ RMI に慣れていないので、しばらくお待ちください。

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

linux - UDP ベースのサーバーは異なるユーザーを区別できない

これは、UDP プロトコルに基づいてすべてのクライアントと通信する C++ サーバー アプリケーションです。ユーザーがクライアントからサーバーにログインすると、クライアント アプリケーションは UDP チャネルをサーバーに登録します。このチャネルは IP+Port という固定形式です。つまり、IP が変更されない場合、クライアントにログインしているユーザーがどのユーザーを登録してもかまいません。同じチャンネル。

サーバーのソケット レイヤーは、3 分間チャネルからハートビート パケットを受信しない場合、チャネルを削除するハートビート メカニズムを維持します。クライアントがダウンするまで、たとえばネットワーク ワイヤが切断されるまで、すべてが正常に機能します。以下のシーンを見てください。

上記のシナリオでは、サーバーは同じコンピューターからログに記録されたさまざまなユーザーを区別できないため、ユーザーの状態が正しくありません。この問題を解決する方法を知っている人はいますか?

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

java - SocketException、ピアによる接続リセット。サーバーのハートビート時の奇妙な動作

クライアント サーバーの Android アプリケーションに取り組んでいます。クライアントはサーバー メッセージをポーリングしているbufferedinputstream (in)間、サーバーが到達可能かどうかを繰り返しチェックしているため、サーバーがオフラインになったときにすぐに終了できます。

私のテストデバイス(Android 2.2)の1つでは、これは思ったとおりに機能し、サーバーを閉じるとすぐにIOExceptionトリガーされます。私の2番目のテストデバイス(Android 4.3)IOExceptionではトリガーされません(API 8に準拠)。しかし、エミュレーターで API 8 と 18 の両方を実行しようとしたが、トリガーされなかったため、これはデバイスの問題ではないと考え始めています。

何か案は?

ここから助けを得るために必要なすべての情報を提供していない可能性があります。そうであればお知らせください。提供します。

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

rabbitmq - RabbitMQ: サーバーのハートビートは、接続が切断される前に 3 回失敗する必要がありますか?

ロードバランサーの背後にある 2 つのノードを持つ HA RabbitMQ クラスター (v3.2.x) があります。クライアントは 300 秒のハートビートを使用するように構成されています。ほとんどの場合、すべてが期待どおりに機能します。

ただし、クライアントの接続が切断された場合 (たとえば、クライアントの NIC が切断された場合)、接続を閉じる前に、RabbitMQ ノードが 3 つのハートビート メッセージ (この場合は約 15 分) を試行することに (TCPDump/wireshark を介して) 気づきました。なんで?1回失敗したら閉じませんか?

RabbitMQ サーバーでこの動作を変更する方法はありますか? それとも、接続をより早く閉じるために、ハートビートを 5 秒または 10 秒などのはるかに小さいものに短縮する必要がありますか?

関連する問題...

TCPDump (ロードバランサーでキャプチャ) を見ると、プロキシされた RabbitMQ サーバーのハートビート要求に応答して、死んだクライアントから TCP-ACK を受信しない場合、LB が接続を閉じないのはなぜでしょうか? 実際、LB は要求を数回送信しようとします (もちろん、応答を受信することはありません)。LB が接続が切断されたと想定し、セッション全体 (RabbitMQ ノードへの接続を含む) を閉じることは意味がありませんか?