問題タブ [thrift-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 に答える
308 参照

c - thrift c_glib クライアントを使用して構造がクライアントに返されない

thrift を使用して c (c_glib) でクライアント/サーバー プログラムを実装しようとしています。

関数の引数として変数を渡すクライアント/サーバーを実装しました。ここで、構造体を関数の引数として渡す必要があります。

使用しているthriftファイルを以下に示します

構造を渡すために私が従った手順は次のとおりです。

  • クライアント側
    1. g_object_new(TYPE_PACKET, NULL)
    2. 構造体のポインタをサーバーに渡します。calculator_if_set_packet (client, trans_packet, &error)
    3. g_object_get(tans_packet, "header", &head, "data", &dat, NULL) でサーバーのデータセットを取得
    4. サーバーのデータセットが反映されていることを示す構造体を出力クライアントに戻る

クライアント側の関連コードを以下に示します

  • サーバー側
    1. g_object_get(pac_data, "header", &header, "data", &data, NULL) で pac_data のプロパティを取得
    2. g_object_setg_object_get(tans_packet, "header", 111, "data", 999, NULL)

サーバー側の機能を以下に示します

これを行っているとき、calculator_if_set_packet() を呼び出しているときに、サーバーはクライアントに何も返していません。

誰でもこれについて私を助けることができますか?

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

c# - c ++での倹約通信の日時に最も適しているデータ型はどれですか?

倹約通信では、クライアントからサーバーに日付と時刻を送信する必要があります。したがって、どのデータ型が最も適切か。

私のクライアントは C++ で、サーバーは C-Sharp です。サーバーでは、このタスクを実行するために DateTime キーワードを使用しています。しかし、現在使用しているI64がサーバー側で正しいデータを提供していないため、使用すべきCppについて混乱しています。

前もって感謝します

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

cassandra - cassandra cqlshで、マップから選択するにはどうすればよいですかテーブルで?

基本的に、私のテーブルのセットアップ方法は次のとおりです。

次の SELECT ステートメントを実行すると、これが返されます。

SELECT id, attributes from points limit 5;

私がやりたいことは、属性内の情報に基づいて WHERE 句を形成できるようにすることです。次のステートメントのようなもの:

SELECT id FROM points WHERE name = 'NAME' AND attributes['pFreq'] = 101;

ただし、これを実行すると、次のエラーが発生します。

Bad Request: line 1:56 no viable alternative at input '['

この議論を見たところ、まだサポートされていないように見えますが、これは本当ですか? または、属性情報をフィルタリングする方法はありますか?

私が使用しているバージョンは次のとおりです。

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

java - リサイクルオブジェクトを読み取り可能な文字列に変換して元に戻す方法は?

単体テストでthriftオブジェクトを作成する必要がある場合があります。次のようなJavaコードを使用して手動でオブジェクトを作成することでそれを行うことができます:

しかし、これは便利ではありません。読みやすいテキストでオブジェクトを作成する方法を探しています。

を使用してthriftオブジェクトをJSONに変換しTSimpleJSONProtocol、次のような非常に読みやすいJSON文字列を取得できます。

しかし、問題はTSimpleJSONProtocol書き込みのみであり、thrift はそれを読み取って のインスタンスを構築することはできませんMyObj

TJSONProtocolシリアライズとデシリアライズをサポートする がありますが、生成された JSON を読み取ることはできません。非常に単純化された JSON 形式を使用しており、ほとんどのフィールド名が欠落しています。テストで構築するのは不便です。

thrift オブジェクトを読み取り可能な文字列に変換し、元に戻す方法はありますか? 逆変換をサポートしている場合TSimpleJSONProtocol、これはまさに私が探しているものです

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

python - Thrift python 3.4 TypeError:文字列引数が必要で、「バイト」を取得しました

ディレクトリ の下にあるため、Thriftがサポートしていると思われるpython 3.4を使用してApache Thriftを試しています。しかし、私はこのエラーメッセージを受け取り続けていますlib.linux-x86_64-3.4build

何が起こっているのか、そしておそらく解決策を知っている人はいますか?

以下は関連するコードです

トレースバック全体:

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

thrift - Apache Thrift の使用中にプロトコルの不一致を検出する方法は?

Mac で Apache Thrift を使用して通信するクライアント プログラムとサーバー プログラムのペアを実行しています。私たちの実稼働システムでは、クライアントが使用TJSONProtocolし、サーバーがTBinaryProtocolシリアライゼーションとデシリアライゼーションを使用する状況になる可能性があります。

私はこれが恐ろしいことであることを知っています。しかし、これを事前に検出する方法がわかりません。サンプルプログラムを異なるプロトコルで試してみました。例外を受け取ることを期待していましたが、クライアントが RPC 呼び出しでスタックし、返されませんでした。

を使用したサーバーコードTBinaryProtocol:

を使用したクライアント コードTJSONProtocol:

この例では、Ping success印刷することはありません。立ち往生せずにこの非互換性を検出する方法はありますか?