iOSの上gRPCを使用してみてください

簡単な紹介

gRPC、リモートプロシージャコールフレームをグーグル、トランスポートプロトコルはHTTP2、シリアライゼーションプロトコルいるProtobufを用います。
gRPCは、非常に高効率、低リソース使用率を持って、バイナリデータの議定いるProtobufシーケンスを転送HTTP2を使用しています。
githubのリポジトリアドレスします。https://github.com/grpc/grpc、リポジトリは共有コアCライブラリのsrc /コア(C ++、Pythonの上に複数の言語が含まれ 、ルビー、Objective-Cの、PHP、C#)を達成するためにgRPCライブラリのソースコード。
gRPCいくつかの特徴:

  • シンプルなサービス定義
  • 言語やプラットフォーム間での作業
  • クイックスタートと拡張
  • 双方向ストリーミングと認証統合

使用GRPCいくつかのコアステップ
1).protoファイルにサービス定義サービス(定義し、これは主プロトコル舞台裏の相互作用である)
2)grpcコード生成grpcコード生成
顧客サービスに提供される特定のサービスのサーバー側の調製の記述)3最終用途(似たインターフェース)
4)実装は、Serverサービス実現
5)クライアント側のコード(統合GRPCを書くために、クライアントを書く)
(.proto文書はプロトコル合意)6)コードを呼び出すRPCは(インターフェース)の呼び出しRPCプロトコルに基づいて
の利点:クライアントの流れと帯域幅を節約し、CPUの使用率、およびバッテリ寿命を節約する、TCPリンクの数を減らすために高度な機能へのリンクを利用します。

Objective-Cのクイックスタート

システム要件

  • 最小IOSバージョン7.0、すなわち、IOSバージョン> = 7.0
  • OS X 10.11以上、すなわち、OS X 10.11> = 10.11

前提条件
  1、CocoaPods> = 1.0チェックCocoapodsバージョン:POD -version
  $ CocoaPods sudoをGEMインストール
  $ PODのセットアップに
  PSを:CocoaPodsは、iOSの開発、などのMavenのJavaの効果、NPMのnodejsとして開発MacOSのパッケージの依存関係の管理ツールです。
  2、Xcodeの> = 7.2

  

  3、自作
  $ Rubyの-e「$(カール-fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)」
  PS:自作のパッケージ管理システムはで、無料でオープンソースですシステムのMacOS上でソフトウェアのインストールプロセスを簡素化する
  。4、autoconfの、automakeに、libtoolは、PKG-config設定の
  $のBREW PKG-config設定のlibtoolのautoconf automakeをインストール

GRPCは、プラグインとバイナリライブラリファイルをインストールします

https://github.com/grpc/grpc gRPCソースをダウンロードし、grpcのディレクトリに展開:
$をmakeが
エラーが発生しました:エラーは非常に簡単です、プロンプトシステムが欠けている袋を気遣います

https://github.com/c-ares/c-ares / grpc / THIRD_PARTY /、/ディレクトリを気に気に再作成するだけでなく、〜を与えられている下に置か心配、抽出液をダウンロードした後、その不足のOpenSSL、ル私に提案欠如をインストールするには、ときヘッドああです!倉庫内THIRD_PARTYのgrpcはちょうどライブラリのアドレスを与えられたが、THIRD_PARTYが実際にするとき、すべてのファイルのソースコードをコンパイルするために必要なとき。

効果的な解決策:ソースコードのためのGitは(ネットワーク良いが必要です):
$ gitのクローン--recursive -b v1.23.0 https://github.com/grpc/grpc.git
$のCD GRPC
--init $ gitのサブモジュールを更新
メーク$
$を[須藤] make installを
直接の使用を含むことができるプログラムで、は/ usr / localでgRPCのヘッダファイルは/含まれますインストールが完了した後、リンクライブラリが使用成功裏にコンパイルされたプログラムのリンクでは/ usr / local / libにインストールされています。

 

インストールprotocコンパイラ

$醸造タップgrpc / grpcの
$醸造はいるProtobufをインストール

実行サーバー

この例のアプリケーションでは、我々は、ローカルコンピュータ上で実行されているgRPCサーバーを必要としています。gRPC Objective-CのAPIは、作成gRPCクライアントをサポートしていますが、gRPCサーバの作成をサポートしていません。そこで、我々は構築し、同じリポジトリにC ++のサーバーを実行します。
$ CDの例/ CPP / HelloWorldのは、
メイク$
&$の./greeter_serverを

アップを実行greeter_server C ++サーバプロセス〜

実行クライアント

1)クライアントライブラリとの依存関係を生成
../../objective-c/helloworld $ CDを
$ PODインストール

2)クライアントアプリケーションを実行
$オープンHelloWorld.xcworkspace
これは、Xcodeプロジェクトを使用してアプリケーションを開きます。iOSシミュレータでアプリケーションを実行するために、「ファイル名を指定して実行」ボタンの左上隅を押して、Xcodeのウィンドウ。あなたには、呼び出し元のコードmain.mをチェックし、Xcodeのコンソールに結果を表示することができます。コードは、文字列「のObjective-C」を含むローカルサーバーHLWHelloRequestに送信されます。コンソールに文字列の「HelloのObjective-C」、及び、出力が含まれているサーバーの応答HLWHelloResponse、。

おめでとうございます!あなただけのgRPCが正常のiOSシミュレータ-C ++クライアント・サーバ・アプリケーションを実行します。

iOSの本当のテスト

iphoneを挿入し、Xcodeはあなたが実行を構築することができ、iphoneを認識し、現在のデバイス構成情報工学の署名として選択します!

物理マシンは、有線光ファイバネットワークを使用して、ワイヤレスネットワークで使用されるiPhoneの電話が同じLAN内にない間、私のMac OSは、物理マシンの仮想マシン上で実行されているので、それは、ネットワーク接続することはできません。
私のラップトップ(のWindows7 x64)の無線ネットワークを使用して、IPアドレス192.168.2.15、iphoneの携帯電話のIPアドレス192.168.2.231、同じ無線LANであり、あなたがラップトップ192.168.2.15上gRPC C ++のHelloWorld Serverプログラムを実行することができ、しかし、このプログラムは、gRPCのWindowsのバージョンが必要ですgRPCのコンパイル済みのWindowsのバージョンとそのHelloWorldのデモ・プログラムを使用して記事「grpc1.18.0 C ++のウィンドウのVisual Studio 2017を参照することができます (vs2017) コンパイラのバージョン(エントリ)」と「grpc1.18.0 C ++のウィンドウのVisual Studio 2017 (vs2017)バージョンHelloWorldの例および分析。」

:私はここで、直接最終的な結果を示し
1)GRPC HelloWorldのC ++サーバーを

注:により、サーバプログラムには、VS2017 x64のを使用してコンパイルされます(一部のコンポーネントをインストールするための唯一のC ++開発者がすることができます)その実行を確実にするためにVS2017をインストールする必要があるので、ランタイムおよびいくつかは、ZLIB.DLL VS2017ランタイム・ライブラリーを必要としています。
リトル知識:サーバーのリスンアドレスは、「サーバー側で0.0.0.0:50051",0.0.0.0あるサービスが複数のIPアドレス(192.168.1.2と10.1.1.12)を持っている場合には、すべてのIPV4がマシンに取り組むことを意味しますそして、私たちが耳を傾けた場合のアドレスは0.0.0.0が、我々はまだ10.1.1.12がサービスにアクセスすることができますされている設定のいずれかIP192.168.1.2ています。
2)gRPCオブジェクト-CのHelloWorldクライアント
サーバアドレスは、Xcodeので接続されます@ "localhost.15:50051"変更"192.168.2.15:50051" @、iOSの実機が接続されている選択した後、実行します!

IOSのテストはして借り、実機を使用しました。

おめでとうございます!あなただけのgRPCが成功のiOSデバイスクライアント-C ++サーバアプリケーションを実行します。

参照

おすすめ

転載: www.cnblogs.com/MakeView660/p/11512519.html