ウェブベースのチャットツールを作成するとき、リアルタイムメッセージングには通常どのような方法を使用しますか? ?
私が知っていること:
ajax ポーリング (リソースの無駄で良くないと言われています...)
EventSource (サポートが不十分、IE はまったくサポートしていません..)
WebSoket (あまり詳しくありません...)
さらに、Baidu で検索したところ、ブラウザが WebSocket をサポートしていない場合でも、WebSocket を実装できるサードパーティのライブラリがあることがわかりました。いわゆる WebSocket は、Ajax ポーリングを使用することと同じですか?瞬時のコミュニケーションを実現するには? ?
現在一般的に使用されているWebリアルタイム通信技術は何ですか? ?小白はアドバイスを求め、偉大な神に飛行機で来るように頼みます...
ウェブベースのチャットツールを作成するとき、リアルタイムメッセージングには通常どのような方法を使用しますか? ?
私が知っていること:
ajax ポーリング (リソースの無駄で良くないと言われています...)
EventSource (サポートが不十分、IE はまったくサポートしていません..)
WebSoket (あまり詳しくありません...)
さらに、Baidu で検索したところ、ブラウザが WebSocket をサポートしていない場合でも、WebSocket を実装できるサードパーティのライブラリがあることがわかりました。いわゆる WebSocket は、Ajax ポーリングを使用することと同じですか?瞬時のコミュニケーションを実現するには? ?
現在一般的に使用されているWebリアルタイム通信技術は何ですか? ?小白はアドバイスを求め、偉大な神に飛行機で来るように頼みます...
Workerman は純粋な PHP
开发的开源高性能的PHP socket
サーバー フレームワークです。モバイルアプリ、モバイルゲームサーバー、オンラインゲームサーバー、チャットルームサーバー、ハードウェア通信サーバー、スマートホーム、車両のインターネット、モノのインターネット、その他の分野の開発で広く使用されています。 TCP の長い接続をサポートし、Websocket、HTTP およびその他のプロトコルをサポートし、カスタム プロトコルをサポートします。 Workerman をベースとすることで、開発者はビジネス ロジックの開発により集中できるようになり、基礎となる PHP Socket の開発について心配する必要がなくなりました。
git リポジトリ: https://github.com/walkor/Wor...
中国語ホームページ: http://www.workerman.net/
中国語ドキュメント: http://doc3.workerman.net/
質問者はこれを試すことができます。
2 つの PHP ソリューションについて話します。そのうちの 1 つは誰かが言及した WorkerMan で、もう 1 つは Swoole に基づいて Fengge によって開発された PHPWebIM です。
PECL 拡張機能 Swoole は、PHP を使用した高性能ソケット アプリケーションの作成をサポートしています:リーリー
PHPWebIM は、PHP Swoole 拡張機能と Swoole Framework に基づいて Swoole によって開発された公式 WebSocket Web インスタント チャット ツールです。PHPWebIM は WebSocket+Comet プロトコルをサポートしており、IE を含むすべての種類のブラウザで使用できます。デモをご覧ください。
比較的リアルタイムのメッセージ通知のみを実装したい場合は、AJAX ポーリングを使用することもできます。
2) SetInterval 間隔のパッシブ ポーリング (キープアライブ永続接続、30 など)秒)
3) window.onfocus ウィンドウはフォーカスを取得し、アクティブにトリガーされます (イベント駆動型)
ポーリング間隔が短すぎるため、ユーザーが開くページが多すぎるため、サーバーに過剰な負荷がかかる可能性があります。
リアルタイム要件が高い場合は、2 分に 1 回ポーリングするなど、間隔を増やすことができます。
リーリー
正解は二階です。
ケースのアドレス: http://www.workerman.net/
WebSocket は ajax を介して実装されるわけではありません
WebSocket を使用するのが最も完璧であり、workerman、react、swoole などのフレームワークを使用して実装することもできますが、その実装ではより多くのリソースが消費されます。 WebSocket よりもコストが低くなります。実装コストが最も低いリアルタイム ポーリングもありますが、効率は間違いなく最も低くなります。スケジュールされたポーリングを使用します。