ホームページ > バックエンド開発 > PHPチュートリアル > PHP はアプリのインスタント メッセージング サーバーに適していますか?

PHP はアプリのインスタント メッセージング サーバーに適していますか?

WBOY
リリース: 2016-06-17 08:31:32
オリジナル
2037 人が閲覧しました

最近、インスタント メッセージング アプリの Android バージョンを作成したいと思っています。たまたま PHP に精通しているのですが、PHP はインスタント メッセージング サーバーに適しているかどうかを尋ねたいと思います。長所と短所はありますか?

返信内容:

うーん!説明する必要はありません! ! 少し前に最低限のプロジェクトを書きました
PHP 部分は Socket に基づいています
iOS 部分は SocketRocket を使用します
主なことは、PHP はポートをリッスンしてクライアントのリクエストを待機し、それに応じてリクエストします
クライアントは、接続 - ログイン - メッセージの送受信のモードは
1. クライアントが接続をリクエストし、サーバーは接続にインデックスを与え、成功した接続を返します
2.クライアントは接続が成功したことを検出し、ID 情報をサービスに送信します。クライアントでログインします。情報が正しければ、サーバーはアカウント情報を接続インデックスにバインドし、成功したログインを返します。
3. クライアントは、アカウント情報を接続インデックスにバインドし、成功したログインを返します。チャット情報を特定の ID アカウントに送信し、サーバーはチャット情報をデータベースに保存し、同時に受信者に対応する接続​​インデックスがあるかどうかを取得します。存在する場合、チャット メッセージが送信され、受信者はメッセージを聞いて応答します。オンラインでない場合はプッシュ通知します。同時に送信成功情報を送信者に返し、送信が成功したことを確認します。
これは機能しますが、サーバーが頻繁にハングアップします。その後、RESTful バックアップ プランを追加しました。 。 。 。 あはは、私たちのプロジェクトは GatewayWorker によって作成されたチャット モジュールを使用しています。 インスタント メッセージング バックエンドを実装した後は、インスタント メッセージング アプリを作成する気はもうなくなるでしょう。これを見たら間違いなく吐き気を催すでしょう。

PHP インスタント メッセージング サーバーは、高性能 PHP ソケット サーバー フレームワークである Workerman を使用できます。

Workerman に基づいて、ワークロードを簡素化する TCP 長時間接続アプリケーション フレームワークである GatewayWorker もあります。

これは単なる基礎であり、家を建てるには自分で多くのことを実装する必要があります。

研究用であれば、書いても読んでも大丈夫です。

アプリの作成に重点を置いている場合は、これらのベース サービスを使用するのもよいでしょう。

例:
Huanxin - インスタント メッセージング クラウドのリーダー
LeanCloud
はいずれもインスタント メッセージング サービスを提供し、SDK 調整にアクセスしますメソッド 以上です。自分のビジネスに集中してください。

これらのサービスプロバイダーはすべて無料版を提供しており、ユーザーが少ない場合は基本的に料金は発生しません。 私の PHP の使用状況から判断すると、データベース操作はあまり問題にならないと思います。私はやったことがありませんが、そう思います。サードパーティ製のワイルドドッグを使用しましたが、問題はありませんでした。 Workerman's GatewayWorker
マルチプロトコル、分散展開、ホット アップデートをサポート
サンプル ドキュメントは非常に充実しています それができるかどうかと問われれば、答えはイエスです。実際のプロジェクトでは、適切かどうかを比較する必要があり、プロジェクトのリソース、チームの人選、リーダーの気分によって異なります。これを尋ねる場合は、Java についてある程度の調査を行っており、それぞれの利点について一般的に理解している必要があります。
経験に基づく私の答えは、php を使用してみる価値があるということです。とにかく、あなたはそれを自分で書いたものであり、あなたはそれをよく知っているので、それを手放してみてはいかがでしょうか。 PHP はメッセージをアクティブにプッシュできません。
クライアントはサーバーを要求する新しいメッセージがあるかどうかを検出するためにリクエストをポーリングする必要があり、その後サーバーが応答するため、アプリは定期的にサーバーにリクエストを行う必要があります。 -off を短くするのは簡単ではありません、コストが高すぎます、そして長いです 新しいメッセージはタイムリーではありません
udp パッケージを送信するには一般的な Java ソケットを使用できます。ネイティブ ソケットからの数行のコードで十分です。 . アドレスとポートを指定して、バックグラウンドでサービスのリッスンポートを実行し、サーバー側で対応する送受信を記述します
通信をカプセル化することで記述が容易になります
もあります。私の回答の間違いは私自身が犯したものです。訂正してください。 行われていれば適切ですが、行われていない場合は不適切です。あなたがそれをし、私がそれをしなければ、誰も残らないでしょう。 、しかし時代の参加者。 確かにそうですし、とても信頼できます。最近、PHP を使用して 2 つのチャット プロジェクトを作成しました。1 つは APP、もう 1 つは H5 です。 Workerman のチャット ケースから抜粋しました。ドキュメントは非常に充実しており、多くのケースがあります。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート