私は経験の浅い PHP プログラマーで、Web ホストのサーバーで実行される Codeigniter を使用して Web サイトを作成しています。この Web サイトには、他の機能の中でも特に、中規模のグループ (+/- 25 人) がリアルタイムのチャット セッションを行うことができる複数のチャットルームが含まれている必要があります。チャットルームの数はサイトの人気度に依存するため、チャット機能はスケーラブルである必要があり、数百または数千のチャットルームをホストできるように準備したいと考えています.
これを行う1つの方法は、ajaxでショートポーリングを使用することです。つまり、すべてのメッセージをデータベースに保存し、データベースを毎秒ポーリングします。このアプローチは (データベースにとって非常に集中的であるため) うまくスケーリングできないと考えたので、node.js を使用した websocket などのロング ポーリング アプローチを使用する方がよいと考えました。
私はソケットの使用経験がありません。私が見た限りでは、node.js では独自のサーバー (例: localhost) を使用する必要があります。理想的には、今後のすべてのメッセージが他のすべてのチャット ユーザーにプッシュされ、メッセージが時々 (たとえば 10 分ごとに) データベースに送信されるように、自分の Web サイトに node.js の機能を統合したいと考えています。チャット履歴を後で確認できるようにします。
node.js は独自のサーバーで独立して実行する必要があるため、これは不可能のようです。ウェブホストのサーバーを使用しているときに、チャットをウェブソケットで機能させるにはどうすればよいですか? これは可能ですか?Web ホストの代わりに別の Web サーバーを使用する必要がありますか、それとも短いポーリングに固執する必要がありますか? よろしくお願いします。