PHP と Thrift を使用したリアルタイムのデータ対話
インターネット技術の継続的な発展に伴い、リアルタイムのデータ対話はあらゆる分野でますます重要になってきています。 PHP と Thrift テクノロジーを使用してリアルタイムのデータ対話を実現することは、非常に実現可能なソリューションになりました。この記事では、PHP と Thrift を使用してリアルタイムのデータ対話を実現する方法と、簡単な例を紹介します。
1.倹約とは何ですか?
Thrift は、Facebook によって開発されたクロスランゲージ リモート プロシージャ コール (RPC) フレームワークです。 Java、PHP、Python などを含む複数のプログラミング言語をサポートしています。 Thrift は、IDL (インターフェイス定義言語) を使用してデータ型とサービス インターフェイスを定義し、コード ジェネレーターを使用してクライアントとサーバーのコードをさまざまなプログラミング言語で生成し、クライアントとサーバーが言語を超えて通信できるようにします。
Thrift の重要な特徴は、XML や JSON の代わりにバイナリ プロトコルを使用することです。これにより、Thrift はデータを効率的に送信できるようになり、ユーザーはデータ圧縮アルゴリズムをカスタマイズして送信効率を向上させることができます。
2. Thrift の使用方法は?
- Thrift のインストール
Thrift は次のコマンドでインストールできます:
sudo apt-get install thrift-compiler
または、公式 Web サイトからダウンロードしてインストールできます: https://thrift .apache.org/download
- Thrift ファイルの作成
Thrift は IDL を使用してデータ型とサービス インターフェイスを定義します。以下は、サービス インターフェイスとデータ型を含む単純な Thrift ファイルの例です。
namespace php example struct Person { 1: required string name, 2: optional string email, 3: optional bool gender, } service PersonService { bool addPerson(1: Person person), bool deletePerson(1: string name), Person getPerson(1: string name), }
この例では、名前、電子メール、性別などの情報を含むデータ構造 person を定義します。また、個人情報の追加、削除、クエリの機能を含む PersonService サービス インターフェイスも定義しました。
- コードの生成
次のコマンドを実行して PHP コードを生成します:
thrift --gen php example.thrift
このコマンドは、Thrift ファイル example.thrift に基づいて PHP コードを生成します。 。
- サーバー側のコードの作成
サーバー側では、PersonService サービス インターフェイスを実装する必要があります。以下は、簡単な PHP コードの例です。
<?php namespace example; require_once 'PersonService.php'; class PersonServiceImpl implements examplePersonServiceIf { public function addPerson(examplePerson $person) { // 插入数据库等操作 return true; } public function deletePerson($name) { // 从数据库中删除指定姓名的信息 return true; } public function getPerson($name) { // 从数据库中查询指定姓名的信息 return $person; } }
この例では、PersonServiceIf インターフェイスを実装し、特定のビジネス ロジックに従って addperson、deleteperson、および getperson メソッドを記述します。
- クライアント コードの記述
クライアント側では、リモート サービスを呼び出すコードを記述する必要があります。 Thrift によって生成されたクライアント コードを使用すると、このプロセスを簡単に実装できます。以下は、単純な PHP クライアント コードの例です。
<?php namespace example; require_once 'PersonService.php'; // 连接服务端 $socket = new ThriftTransportTSocket('localhost', 9090); $transport = new ThriftTransportTBufferedTransport($socket, 1024, 1024); $protocol = new ThriftProtocolTBinaryProtocol($transport); $client = new examplePersonServiceClient($protocol); // 调用addPerson方法 $person = new examplePerson(); $person->name = 'Tom'; $person->email = 'tom@example.com'; $person->gender = true; $result = $client->addPerson($person); // 调用deletePerson方法 $name = 'Tom'; $result = $client->deletePerson($name); // 调用getPerson方法 $name = 'Tom'; $person = $client->getPerson($name);
この例では、まず Thrift が提供する Transport クラスと Protocol クラスを使用してサーバーに接続し、クライアント オブジェクトをインスタンス化します。次に、addperson メソッド、deleteperson メソッド、getperson メソッドを呼び出して、ネットワーク送信を介したクライアントとサーバー間のリアルタイムのデータ対話を実現しました。
3. リアルタイム データ インタラクションの実現例
次は、PHP と Thrift を使用してリアルタイム データ インタラクションを実現する方法を示す簡単な例です。ユーザーがメッセージを送信でき、他のユーザーがそのメッセージを見ることができるオンライン チャット ルームがあるとします。 Thrift を使用してメッセージ構造とチャット サービス インターフェイスを定義し、PHP を使用してサーバーとクライアントを実装できます。
- Thrift ファイルの定義
メッセージの送信者、受信者、送信時刻、メッセージ内容などの情報を含む Message クラスを定義します。また、メッセージの送信とすべてのメッセージの取得の機能を含む ChatService サービス インターフェイスも定義しました。
namespace php example struct Message { 1: required string from, 2: required string to, 3: required i32 timestamp, 4: required string content, } service ChatService { bool sendMessage(1: Message message), list<Message> getAllMessages(), }
- コードの生成
次のコマンドを実行して PHP コードを生成します:
thrift --gen php example.thrift
生成されたコードには、Person.php、PersonService.php、PersonServiceClient が含まれます.php や Thrift などのファイル。
- サーバー側のコードを記述する
サーバー側では、ChatService サービス インターフェイスを実装する必要があります。以下は簡単な PHP コードの例です:
<?php namespace example; require_once 'ChatService.php'; class ChatServiceImpl implements exampleChatServiceIf { private $messages = []; public function sendMessage(exampleMessage $message) { $this->messages[] = $message; return true; } public function getAllMessages() { return $this->messages; } }
この例では、ChatServiceIf インターフェイスを実装し、配列を使用して受信したすべてのメッセージを保存します。サーバーがメッセージを受信すると、それを配列に保存します。クライアントが getAllMessages メソッドを呼び出すと、保存されているすべてのメッセージが返されます。
- クライアント コードの記述
クライアント側では、リモート サービスを呼び出すコードを記述する必要があります。以下は、単純な PHP クライアント コードの例です。
<?php namespace example; require_once 'ChatService.php'; // 连接服务端 $socket = new ThriftTransportTSocket('localhost', 9090); $transport = new ThriftTransportTBufferedTransport($socket, 1024, 1024); $protocol = new ThriftProtocolTBinaryProtocol($transport); $client = new exampleChatServiceClient($protocol); // 发送消息 $message = new exampleMessage(); $message->from = 'Tom'; $message->to = 'Jerry'; $message->timestamp = time(); $message->content = 'Hello, Jerry!'; $client->sendMessage($message); // 获取所有消息并输出 $messages = $client->getAllMessages(); foreach ($messages as $message) { echo "{$message->from} to {$message->to} at {$message->timestamp}: {$message->content} "; }
この例では、最初にクライアント オブジェクトを作成し、Thrift が提供するクラスを使用してサーバーに接続します。次に、メッセージを送信し、sendMessage メソッドを呼び出し、getAllMessages メソッドを使用してすべてのメッセージを取得して出力します。
5. 結論
PHP と Thrift を使用してリアルタイムのデータ インタラクションを実現することで、言語を超えたコミュニケーションを簡単に実現でき、異なるプラットフォーム間のデータ インタラクションがより効率的かつ信頼性の高いものになります。同時に、Thrift のクロスランゲージ機能により、アプリケーションの拡張とメンテナンスがより簡単かつ柔軟になります。
以上がPHP と Thrift を使用したリアルタイムのデータ対話の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
