39

WebSocket が話題になっているため、Google の Apache サーバーで WebSocket を使用する方法についての適切なウォークスルーを見つけるのはかなり困難です。

PHP (symfony2) でプラグインを開発しており、チャット インスタンスのようなものを時々実行します。そして、この点に関しては、AJAX よりも WebSocket の方が興味深く、標準的で、迅速であることがわかります。問題は、私たちのグループにはシステム管理者のリソースがあまりなく、次の事項に関する適切な情報を収集するのが難しいことです。

  • 従来の Apache の専用サーバーで WebSocket インスタンスを実行できますか? はいの場合、役立つリンクはありますか?
  • サーバーを変更する必要がある場合、システム管理にあまり熟練していないため、これに高度なメンテナンスを行う余裕がないことを知って、どのような種類のツールをお勧めしますか?

どうもありがとうございました、

追伸: アプリのこの部分について、開発者ブログに技術的/情報的な投稿を作成する際に、あなたのブログ/サイトにリンクします。

ありがとうございました!

4

4 に答える 4

17

@zafが述べているように、Apache内で実行されるものではなく、スタンドアロンのPHPソリューションを見つける可能性が高くなります。つまり、ApacheWebSocketモジュールがあります。

ただし、根本的な問題は、Apacheが多くの持続的接続を念頭に置いて構築されていないことです。これは、PHPとともに、要求が行われ、応答が迅速に返送されるという考えに基づいて構築されています。これは、リクエストを開いたままにしていて、水平スケーリングを非常に迅速に調べる必要がある場合、リソースがすぐに使い果たされる可能性があることを意味します。

個人的には、2つの選択肢があると思います。

  1. 代替のリアルタイムWebテクノロジーソリューションを使用し、キューまたは短期間の要求(Webサービス)を使用して、WebアプリケーションとリアルタイムWebインフラストラクチャの間で通信します。
  2. 永続的な接続の処理とリアルタイムWebインフラストラクチャのスケーリングをリアルタイムWebホストサービスにオフロードします。私はプッシャーで働いており、このカテゴリーに分類されます。

セルフホストオプションとホストオプションの両方については、私のリアルタイムWeb技術ガイドを確認してください。

于 2012-07-05T15:22:42.470 に答える
14

1 つの方法は、独立してインストールされた Web ソケット サーバーを使用することです。

PHP の場合は、http://code.google.com/p/phpwebsocket/ または http://github.com/Devristo/phpws/ を試すことが できます

他にも試してみることができるプロジェクトがいくつかあります。

基本的に、プロセスをアップロードして解凍し、実行を開始する必要があります。

フロントエンドでは、特定のポートでサーバーに接続する JavaScript があります。

ほとんどの websocket サーバーには、受信したものをエコー バックするデモがあるため、ここにテスト コードを記述するのに適しています。初歩的なチャットの実装も見つかるかもしれません。

注意が必要な部分は、Web ソケット サーバーを監視し、それがスムーズかつ継続的に実行されていることを確認することです。

できるだけ多くのブラウザー/デバイスでテストしてみてください。これにより、選択する Websocket サーバーの実装が決まります。注意が必要な古いプロトコルと新しいプロトコルがあります。

于 2012-07-04T19:19:52.073 に答える
6

別の Websocket サーバー、PHP Ratchet ( Github ) を導入しました。

これは、クライアント側とサーバー側のコード、およびブラウザー サポートのより優れた完全なリストです。

このリンクを確認してください。

于 2013-07-11T12:59:38.687 に答える
-2

別のパスは、専用の websocket サーバーを使用することです。

www.achex.ca でAchex Websocket Server を 試して、チュートリアルを確認してください。

また

本当に Apache が必要な場合は、Apache Camelをチェックしてください。(ただし、設定する必要があり、achex サーバーよりも少し複雑です) http://camel.apache.org/websocket.html

于 2013-09-24T20:42:55.583 に答える