問題タブ [custom-protocol]

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 投票する
2 に答える
200 参照

networking - パケットが失われたと想定する前に、パケットを何回再送信する必要がありますか?

私は TCP に似た信頼性の高いネットワーク プロトコルを作成してきましたが、パケットの再送信しきい値 (接続が切断されたと見なす前にパケットを再送信する回数) の適切なデフォルト値を考えていました。ネットワークで最適な再試行回数を見つけるにはどうすればよいですか? また; すべてのネットワークの信頼性が同じであるとは限らないため、この「最適な」値はネットワークによって異なると思います。最適な再試行回数を計算する良い方法はありますか? また; 再試行する前に何ミリ秒待つ必要がありますか?

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

serial-port - シリアルポートデバイスプロトコルの安全な実践:識別、ポーリング

シリアルCOMポートを介してWindowsPCにデータを送信する単純なデバイスを作成しています。

ソフトウェアがデバイスを認識するまで、使用可能なCOMポートをスキャンできるようにしたいと思います。問題は、PCが自分以外のデバイスでハンドシェイクを開始しようとすると、コマンドを解釈する可能性があることです[もちろん間違っています]。

私が見る唯一の解決策は、デバイスが定期的にある種の識別子を、おそらく1秒間に5回程度ブロードキャストすることです。したがって、アプリケーションは、COMポートに接続されている別のデバイスを破損するリスクを冒さずに、その識別子をリッスンするだけで済みます。アプリケーションがロードされると、デバイスが認識されるまで、使用可能な各COMポートでリッスンします。これは合理的に聞こえますか?

ありがとう

0 投票する
2 に答える
231 参照

c++ - デスクトップ アプリケーションと Web サイトの接続

Qt/C++ を使用して、5 ~ 7 秒ごとにいくつかの値を読み取り、それらを Web サイトに送信するアプリケーションを作成しました。

私のアプローチはとてもシンプルです。送信したい値を読んでいるだけで、Web サイトに HTTP POST を送信します。また、ユーザー名とパスワードを Web サイトに送信します。

問題は、リクエストが成功したかどうかがわからないことです。つまり、リクエストを送信してサーバーがそれを取得すると、常に HTTP:200 が返されます。たとえば、パスワードが正しくない場合、それを知る方法はありません。これが HTTP の仕組みです。

ここで、アプリケーションと Web サイト間の通信を処理するために、ある種のプロトコルが必要になると思います。

問題は、どのプロトコルを使用するかです。

0 投票する
7 に答える
108262 参照

google-chrome-extension - Chromeのカスタムプロトコルハンドラー

Chromeでカスタムプロトコルハンドラーを設定するにはどうすればよいですか?何かのようなもの:

myprotocol:// testfile

http://example.com?query=testfileにリクエストを送信してから、httpresponseを自分の拡張機能に送信するには、これが必要になります。

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

http - ユーザー定義のプロトコル URL に POST できますか?

ブラウザーを使用すると、ユーザー定義のプロトコル ハンドラーを定義できます (例: moomoo://someplace.com?foo=1)。

ユーザー定義プロトコルへの POST を可能にするブラウザはどれですか?

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

ios - 手作りのプロトコルでビデオを送信する

アプリケーションを開発します。その主なタスクは、デバイスのカメラからキャプチャされたビデオフレームをサーバーに送信することです。サーバーはTCP経由のプロトコルを使用します。Appleは、開発者がHTTPライブストリーミングを除くビデオストリーミングプロトコルを使用することを制限していると聞きました。この情報は正しいですか?appstoreでアプリを承認する際に問題はありますか?

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

activemq - Stomp ActiveMQ の質問

Stomp ActiveMQ は初めてです。Android クライアントからログインを作成したいのですが、ActiveMq の使用方法がわかりません。アクティブな mq をインストールし、stomp を構成して、stompexample を実行しました。1. 次の行を activemq.xml に追加すると、コマンド ラインから activemq を実行するとエラーが発生します。

  1. 誰かが tx1 と tx2 とは何かを説明できますか? キューでメッセージを特定のクライアントに送信する方法はありますか? どうやって?

    connection.connect("システム", "マネージャー");

    /li>
  2. ユーザー名、パスワードを含むテキストをキューに送信し、登録が成功した場合に応答を受け取るアプリケーションの作成方法を教えてください。

0 投票する
2 に答える
4311 参照

java - 状態パターン設計を使用したJavaでの通信プロトコルの実装

これが他の場所で答えられた場合はお詫びします。これを行うための最良の方法を自分に納得させるのに十分な情報を見つけることができませんでした。また、これはコードのない長い説明であることも理解していますが、私が行っていることを示すためにサンプルコードを作成する必要があるかどうかを教えてください。

基本的に:

  • System.in/outを使用してJavaで通信プロトコルを実装する
  • 現在のアプローチは、スキャナーがコンテキストクラスのSystem.inでインスタンス化される状態パターンを実装しています。
  • 具体的な状態は、コンテキストメソッドを呼び出してスキャナーから読み取り、その後、スキャナーから返された値に基づいてアクション/遷移状態を適切に実行します。

状態パターンを使用する私の当初の意図は、System.inからこのようなシーケンスを解析するときにコードを単純化することでした(構文については聞かないでください。これは私が使用する必要があるものです)。

  • コマンド名=X
  • ヘッダ
  • ヘッダー情報の行
  • コンテンツ
  • コマンドの内容の行
  • ENDCONTENTS
  • エンドコマンド

私は通常、受け取ると予想されるコマンドのタイプごとに具体的な状態を定義します。上記のシーケンスを例として使用すると、{WAITING_FOR_COMMAND、COMMAND_RECEIVED、PARSING_HEADER、PARSING_CONTENTS、PARSING_DONE、COMMAND_PROCESSED}のような状態セットが作成されます。最初はWAITING_FOR_COMMANDにいて、「COMMAND NAME = X」を受信するとCOMMAND_RECEIVEDに移行し、「HEADER」が入ったらPARSING_HEADERなどに移行します。この設計では、すべてのエッジケースをトラバースします。プロトコルが簡単になり、プロトコルが微調整されたときのコードの更新/保守も簡単になります。明らかに、大規模なswitchステートメントや反復的な境界チェックよりもはるかに優れています。

私が抱えている問題は、具体的な状態の動作を具体化するにつれて、コンテキストクラスでますます多くの状態変数を宣言していることに気付くということです。これは、非常に公開されたインターフェイスと、コンテキストと具体的な状態クラス。このプロトコルのコマンドシーケンスは任意の長さにすることができ、コマンドシーケンスが完了するまで、コマンドシーケンスの各項目によって与えられた情報を保存する必要があります。

上記のコマンドシーケンスを例にとると、「COMMAND ID = X」の後に、「ENDCOMMAND」を受け取ってコマンドを完全に処理した後、後で使用できるように値Xを保存します。「HEADER」の後に、実際にコマンドを処理するときに「ENDCOMMAND」を受け取った後、将来使用するためにヘッダー情報を保存したいと思います。などなど。コンテキストクラスにcommandIdとヘッダー状態変数を追加するだけで今のところは機能しますが、私にはまったくきれいに見えないか、うまくカプセル化されていないようです。

誰かがこの問題にどのように取り組むかについての高レベルの提案がありますか?このための状態デザインパターンのより良い使用法はありますか?

私が遊んでいるいくつかのアイデアに注意してください:

  • 各タイプのコマンドシーケンスの状態コンテキストを定義し、System.inから関連するコマンドを受け取ったときに適切なコンテキストを呼び出します。これは巨大なスイッチブロックを持っているのとほぼ同じくらい厄介なようで、デザインを過度に複雑にしているようです
  • 複合FSMをサポートする本格的なFSMアーキテクチャを設計します。このアーキテクチャでは、各コマンドシーケンスが包括的なFSM内で独自のFSMを占有します。これは私にはやり過ぎのようです
  • コマンドシーケンスタイプごとにさまざまなサブクラスを持つProtocolCommandオブジェクトを作成します。移行時にこれらを各状態に渡し、進行するにつれて徐々に構築することができます...しかし、これにより状態インターフェイスが乱雑になり、すべての状態に、必ずしも使用しないパラメータを取り込むように強制されます

本当にありがとう!申し訳ありませんが、これは非常に冗長でした。何か明確にできるかどうか教えてください。

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

c# - フォーカスを「奪わない」カスタム プロトコル ハンドラ

一部のシステム情報にアクセスする WinRT アプリケーションがあります。カスタム プロトコルを使用できることを示すリソースがネット上にいくつかあります (WinRT アプリケーションがプロトコルを起動し、デスクトップ アプリが起動して何らかの作業を行います)。カスタム プロトコル ハンドラーは、c# デスクトップ アプリです (インターフェイスが不要なため、"出力タイプ" が "Windows Applicatoin" に設定されているコンソール アプリケーション)。

つまり、WinRT アプリがカスタム プロトコルを起動すると、デスクトップ アプリが起動され、すべてが正常に機能しますが、デスクトップが起動するその瞬間に、メインの WinRT アプリは、デスクトップ アプリが動作するために必要な時間のために非表示になります。

WinRTが常に表示されるように、デスクトップアプリケーションをサイレントモードで起動できるソリューションはありますか(おそらく「バックグラウンド」の入れ方がわからない)。