問題タブ [protocols]
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.
c++ - Spotifyのようにアプリケーションにリンクを送信する方法
エディターでレベルを保存すると、そこに含まれるエラーのログファイルが作成されます。これらは基本的に、エラーメッセージと、ユーザーがツリービューで誤ったアイテムを見つけることができるパスで構成されます。
私が欲しいのは、そのパスをリンクにすることです。たとえば、<a href="editor://path/to/gameobject">クリックして、エディターでオブジェクトを表示します</ a>
これに関して私が見たSOの質問は、このmsdnページを指しているようです:http: //msdn.microsoft.com/en-us/library/aa767914.aspx
しかし、私が言えることから、それはアプリケーションの新しいインスタンスを生成します。私がやりたいのは、どういうわけか私たちのエディターを単に「呼び出す」ことです。それを行う1つの方法は、それを生成することだと思います。最初に、インスタンスがすでに実行されているかどうかを確認し、実行されている場合は、コマンドラインを送信します。
それが最善の方法ですか?もしそうなら、それを最もよくする方法についてのアイデアはありますか?そうでなければ、これを行うことができるいくつかの方法は何ですか?
また、msdnソリューションはブラウザ間で機能しますか?私たちのエディターはWindowsでのみ動作しますが、人々はIE、Fx、GC、Operaを使用しています。
web-services - SOAP と HTTP
Web サービスは SOAP over HTTP を介して送信されると読みました。では、 SOAPとHTTPが両方とも通信プロトコルである場合、両者の違いは何ですか?
違いはありますか、それとも HTTP は単に SOAP によって使用されるバインディングですか?
networking - 伝送プロトコルで未使用のフィールド値
GSM ネットワークで内部的に使用される小さなプロトコルの技術文書を書いています。このプロトコルは、バイトの連続ストリームで [id1] + [byte[] data1]、[id2] + [byte[] data2] などのパターンを使用します。
ポイントは、さまざまな理由 (将来の拡張性と下位互換性) により、一部のフィールドが使用されないことです。このフィールドの値は、誰がプロトコルを実装するかの選択です (現時点では、デフォルト値はプロトコルの実装に使用される言語/フレームワーク、つまりバイト配列要素のデフォルト値に由来します)。
今質問です。未使用のフィールドにデフォルト値を課すことは、何らかの方法で役立ちますか?
iphone - iPhone + Sharepoint
iPhoneをSharepointに接続する方法はありますか?SharepointのHTTPまたはWEBDAVプロトコルをCocoa/Objective-Cに実装できるかどうか疑問に思います。
よろしく
.net - Erlangを使用して他のネットワークアプリケーションとインターフェースする方法は?
私はerlangを学んでいて、mnesiadbに非常に魅了されています。バックエンドとしてerlangを使用して、C#/ F#で実際のアプリケーションを構築したいと思います。
私は外の世界からのerlangノードと通信するための良い解決策を探しています。
私がこれまでに見つけたもの:
(A)OTP.net、「ネイティブ」erlang通信プロトコルを実装するオープンソースの.netライブラリ
ここでの問題:
- ライブラリはあまり成熟していません
- Javaから移植されたオブジェクトモデルが好きではありません(BCLクラスのほぼ正確なレプリカが多すぎます)
- 接続に使用するスレッドモデルは好きではありません。
- 多くの開いているTCPポートが必要です
- セキュリティの欠如
(B) erlangでポート/ソケットを使用し、カスタムプロトコルを実装します。
ここでの問題:
- 経験がない
- 将来のバージョンのために維持/拡張するのは難しい
このトピックに関するアドバイスや経験はありますか?
OTP.netライブラリを自分のニーズに合うように作業する必要がありますか、それとも新しいプロトコルを最初から実装する必要がありますか?
JSONまたはRESTソリューションはどうですか?トリックを行うerlangライブラリはありますか?
embedded - シンプルなシリアルポイントツーポイント通信プロトコル
2つのデバイス(PCとマイクロコントローラー)間の単純な通信プロトコルが必要です。PCは、いくつかのコマンドとパラメーターをマイクロに送信する必要があります。マイクロはバイトの配列(センサーからのデータ)を送信する必要があります。
データはノイズ保護されている必要があります(パリティチェックの他に、他のデータ修正方法が必要だと思います)。
これを行うための標準的な解決策はありますか?(完全な解決策ではなく、アイデアだけが必要です)。
PSどんなアドバイスも大歓迎です。PPS文法の間違いでごめんなさい、ご理解いただければ幸いです。
編集1.マスター/スレーブプロトコルにするのか、双方が通信を開始できるのかは決めていません。PCは、microがいつジョブを実行し、データを送信できるかを認識している必要があります。データの準備ができている場合はマイクロを継続的にポーリングでき、ジョブが完了するとマイクロはデータを送信できます。どちらが優れていてシンプルかわかりません。
編集2. ハードウェアおよび物理層プロトコル。PCで使用されているRS-232Cシリアル規格なので、非同期通信を使用します。RxD、TxD、GND信号のみを使用します。マイクロコントローラーAFAIKがサポートしていないため、追加のワイヤーを使用できません。ところで、私はAVRATmega128チップを使用しています。
したがって、固定ボーレート、8ビットのデータ、2ストップビットをパリティチェックなしで(または?付きで)使用します。
データリンクプロトコル。それが私の質問が主に懸念していることです。HDLC、PPP、Modbusプロトコルを提案していただきありがとうござい調べてみます。
testing - OpenIDプロバイダーのコンプライアンステスト
OpenIDプロバイダーにはどのような自動化された標準準拠テストがありますか?
OpenIDプロバイダーの実装に変更を加えて、標準のバージョン1.1からバージョン2.0に変更します。
コードをリリースする前に、コードが規格の仕様に準拠していることを確認したいと思います。Web標準への準拠をテストするために、W3Cにはバリデーターツールがあります。自動テスターをOpenIDプロバイダーに向けて、標準への準拠のレポートを取得できるようにするために、どのようなツールがありますか?
http - HTTP プロトコルで使用されるエンコーディングはどれですか?
ブラウザが HTTP リクエストを Web サーバーに送信するとき、回線上で HTTP プロトコルをエンコードするためにどのエンコーディングが使用されますか? アスキーですか?UTF8? またはUTF16?それとも、事前定義された形式で使用するエンコーディングを指定しますか (デコードが行われる前に?)
PS リクエスト/レスポンスの実際のペイロード (HTML など) について質問しているわけではありません。GET /index.html HTTP/1.1
リクエスト行 (つまり) とヘッダー (つまりHost: google.com
)について質問しています
c# - このデータ解析の問題をどのように解決しますか?
同時に開発中のハードウェアのエミュレーターを実装しています。アイデアは、サード パーティにクライアント ソフトウェアをテストするためのソフトウェア ソリューションを提供し、ハードウェア開発者にファームウェアを実装するための基準点を提供することです。
ハードウェアのプロトコルを作成した人々は、INCA_XDR と呼ばれる SUN XDR のカスタム バージョンを使用しました。メッセージをシリアライズおよびデシリアライズするツールです。これは C で書かれており、ネイティブ コードを避けたいので、プロトコル データを手動で解析しています。
プロトコルは本質的にかなり複雑で、データ パケットはさまざまな構造を持つことができますが、常に同じグローバル構造を持ちます。
[頭] [イントロ] [データ] [尾]
ご覧のとおり、多くのオーバーヘッド データがありますが、これはプロトコルが RS232 (ポイントツーマルチポイント) と TCP/IP (p2p) の両方で動作する必要があるためです。
または、まったく異なる構造を持つ可能性があります。
場合によっては、DRCode のみで追加データがない場合もあります。
グループとタイプ フィールドに基づいて、エミュレータは特定のアクションを実行する必要があります。そのため、最初にこれら 2 つのフィールドを見て、それに基づいて、データに何が期待できるかを把握し、適切に解析する必要があります。
次に、多くの異なるデータ構造を持つ応答データを生成する必要があります。単純に ACK または NACK メッセージを生成するメッセージもあれば、データを含む実際の応答を生成するメッセージもあります。
私たちは物事を細かく分割することにしました。
まず第一に、IDataProcessor があります。
このインターフェイスを実装するクラスは、生データの検証と Message クラスのインスタンスの生成を担当します。それらは通信を担当せず、単純に byte[] が渡されます。
生データの検証とは、チェックサム、crc、および長さのエラーについてヘッダーをチェックすることを意味します。
結果のメッセージは、IMessageProcessor を実装するクラスに渡されます。生データが無効と見なされたとしても、IDataProcessor には応答メッセージなどの概念がないため、生データを検証するだけです。
IMessageProcessor にエラーを通知するために、いくつかのプロパティが Message クラスに追加されました。
これらはプロトコルとは関係なく、IMessageProcessor 用にのみ存在します。
IMessageProcessor は、実際の作業が行われる場所です。メッセージ グループとメッセージの種類がさまざまであるため、F# を使用して IMessageProcessor インターフェイスを実装することにしました。(F# や、LINQ と SQL 以外の関数型言語の経験はありません)
IMessageProcessor はデータを分析し、IHardwareController で呼び出す必要があるメソッドを決定します。IHardwareController を持つのは冗長に思えるかもしれませんが、F# の使用を強制されないように、別の実装と交換できるようにしたいと考えています。現在の実装は WPF ウィンドウですが、たとえば Cocoa# ウィンドウまたは単にコンソールである可能性があります。
IHardwareController は、開発者がユーザー インターフェイスを介してハードウェア パラメーターとエラーを操作できる必要があるため、状態の管理も担当します。
したがって、IMessageProcessor が IHardwareController で正しいメソッドを呼び出したら、応答メッセージを生成する必要があります。繰り返しますが、これらの応答メッセージのデータは、さまざまな構造を持つことができます。
最終的には、IDataFactory を使用して Message を生のプロトコル データに変換し、通信を担当するクラスに送信できるようにします。(たとえば、データの追加のカプセル化が必要になる場合があります)
このコードを書くのは「難しい」ことではありませんが、さまざまなコマンドとデータ構造のすべてが非常に多くのコードを必要とし、再利用できるものはほとんどありません。(少なくとも今見る限りでは、誰かが私が間違っていることを証明してくれることを願っています)
F# を使うのはこれが初めてなので、実際に学んでいます。以下のコードは完成にはほど遠いもので、おそらく大混乱のように見えます。プロトコル内のすべてのメッセージのほんの一握りを実装しているだけで、非常に多くのメッセージがあることがわかります。したがって、このファイルは巨大になります。
知っておくべき重要事項: バイト順は回線上で逆になっています (歴史的な理由)
(実際のソースでは、クラスは「ハードウェア」よりも具体的な名前が異なることに注意してください)
提案、コードを改善する方法、または問題を処理するためのさまざまな方法を期待しています。たとえば、IronPython などの動的言語を使用すると物事が簡単になるでしょうか? 私は間違った方向に進んでいますか? このような問題を経験したことはありますか?何を変更し、何を回避しますか?...
アップデート:
ブライアンの回答に基づいて、次のことを書き留めました。
すべての DR タイプ (かなりの数) に対してこれを続けることもできますが、それがどのように役立つかはまだわかりません。Wikibooks と Foundations of F# でそれについて読んだことがありますが、まだ頭の中で何かがクリックされていません。
更新 2
だから、私は次のことができることを理解しています:
しかし、メッセージが IMessageProcessor に入ると、メッセージの種類が選択され、適切な関数が呼び出されます。上記は単なる追加のコードであり、少なくともそれが理解できる方法であるため、ここでのポイントを本当に見逃しているに違いありません...しかし、私にはわかりません。