web-dev-qa-db-ja.com

PHP / JavaScriptを使用してサーバーからユーザーに通知をプッシュする

Short: HTTP要求を行う必要なく、サーバーからログインしているユーザーセッションにデータをプッシュする方法はありますか?

Long(er): Apache/PHP/MySQLサーバー上で、モバイルデバイス(またはPhoneGapアプリケーションを介して)のユーザーに提供できるHTML5アプリケーションを構築しています。

ユーザーにサーバーへの呼び出しを実行させたり、AJAX呼び出し(はい、私はそれがシングルバイトのクッキーをチェックできることを知っていますが、私はむしろそれをゼロにしたいです)。

これの良い例は、1人のユーザーから別のユーザーへの送信時に2人のユーザー間でチャットメッセージを送信することです。

37
joelcollyer

最新のブラウザでは、 Websockets または古いブラウザでは、 " long polling "。この一部を抽象化できるライブラリもあります( comet など)。

現在使用されている非常に一般的なライブラリは socket.io 使用可能な場合はwebSocketsを使用し、使用できない場合はロングポーリングなどの他の技術にフォールバックして、使用可能な最高の技術に自動的に接続します。

その他の参照:

基本的な「ロングポーリング」の実装方法

iPhoneのCOMET(クライアントへのサーバープッシュ)

ロングポーリングの詳細

ロングポーリングとCometの使用には違いがあります

WebソケットでWebをプッシュする

ああ、HTML5、データをモバイルにプッシュする

28
jfriend00

Socket.io をお勧めします

活用する

WebSocket、FlashSocket、HTMLファイル(IE用)、XHRロングポーリング、JSONPポーリング

Node.js を使用しているため、非ブロッキング性です。

リアルタイム機能では、並行性が大きな問題です

node.jsとSocket.ioの非ブロッキングの性質が役立ちます

4
InspiredJW

ScaleDrone では、 PHP APIクライアント を使用して、PHPからJavaScriptにプッシュできます。

1
Rob Fox