phprpc ソース コードを変更して、コレクション クラスの文字列型変換をサポートします
リモート プロトコルに関する限り、hessian と phprpc がより一般的に使用されますが、phprpc の変換効率は hessian の変換効率よりもはるかに高くなります。次のリンクは、専門家による 2 つのシリアル化/逆シリアル化の効率の比較です:
http://www.iteye.com/topic/333720
開発のニーズにより、一部のテストは両方をサポートできます。また、型の解析と変換のデータ型でも比較が行われます。
phprpc
1。コレクション内の値は文字列型の値としてサポートされていないため、お客様が変換する必要があります。コードは次のとおりです: new String((byte[])test.getMap() .get("1"),"utf-8")
2. byte[] を除き、他の配列はサポートされていません。 int[]、float[]、char[] などのコレクション。
一見すると、Hessian を使用するだけで十分であるように見えますが、Hessian はコレクション内の char 配列の変換をサポートしていません。実際のアプリケーションで使用される可能性は低いです。しかし、phprpc はヘッセ行列よりも N 倍効率的であることがわかったので、それについて心配する必要はありません。そこで、ソースからのコレクションで文字列型の値がサポートされていないという問題を解決するためにコードを研究し始めました。コード。
実際、この問題の原因は、PHPRPC が逆シリアル化 (アンシリアル化) プロセス中にコレクション内のサブ要素の文字列型を正しく識別できないことです。 PHPRPC では、シリアル化および逆シリアル化プロセスを担当するクラスは PHPSerializer.java です。したがって、問題が特定されれば、解決することは難しくありません。ここで N,000 語を省略するのは、実際にはコードを 1 行追加するだけですが、午後全体のエネルギーを消費します。以下は、コンパイル済み spring2.5 が phprpc を使用するために必要な 3 つの jar ファイル、つまり、phprpc_client.jar、phprpc_spring.jar、phprpc.jar です。
ダウンロードして使用してください。