ホームページ >バックエンド開発 >PHPチュートリアル >WebSocketをベースとしたWEBメッセージプッシュフレームワーク
WebSocket に基づく WEB メッセージ プッシュ フレームワーク
web-msg-sender は、WebSocket の長時間接続通信に基づいて、PHPSocket.IO を使用して開発された Web 長時間接続プッシュ フレームワークです。ブラウザが WebSocket をサポートしていない場合は、自動的に Comet Push に切り替わります。 バックグラウンドでメッセージをプッシュすることにより、ポーリングを行わずに、非常に優れたリアルタイム パフォーマンスと高いパフォーマンスでメッセージをクライアントに即座にプッシュできます。
機能:
マルチブラウザのサポート
単一ユーザーへのプッシュ メッセージのサポート
すべてのユーザーへのプッシュ メッセージのサポート
長時間の接続プッシュ (WebSocket または Comet)、メッセージは即座に到着
オンライン ユーザー数のリアルタイム統計表示をサポート
オンライン ユーザー数のリアルタイム統計表示をサポートオンライン ページの数
国境を越えたドメイン プッシュをサポート
ダウンロード
https://github.com/walkor/web-msg-sender
WEBメッセージ プッシュ フレームワーク
メッセージ受信ページ: http://www.workerman.net:2123/
プッシュ インターフェイス URL: http://www.workerman.net:2121/?type= public&to=uid&content=content
to はメッセージを受信する場所です。uid を空に渡すと、メッセージの内容が全員にプッシュされます。
Linux 環境のインストールと起動
。 1. web-msg-sender をダウンロードし、任意のディレクトリに解凍します
2. 以下に示すように、workermanphp start.php start -d を起動します。
3. ブラウザのアクセス ポート http://ip: 2123 または http://ドメイン名:2123 (例: http://workerman.net:2123): (アクセスできない場合は、サーバーのファイアウォールを確認してください)
フロントエンド テスト:
クロスドメイン プッシュをサポートします。開発者は、サーバーをセットアップせずに、オンライン プッシュ サービスを直接使用できます。たとえば、次のコードを任意のサイトに追加して、メッセージを受信し、コールバックを設定するだけです。統計の収集:
<script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script> <script> // 连接服务端 var socket = io('http://workerman.net:2120'); // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数 uid = 123; // socket连接后以uid登录 socket.on('connect', function(){ socket.emit('login', uid); }); // 后端推送来消息时 socket.on('new_msg', function(msg){ console.log("收到消息:"+msg); }); // 后端推送来在线数据时 socket.on('update_online_count', function(online_stat){ console.log(online_stat); }); </script>
バックエンドは API を呼び出して任意のユーザーにプッシュします:
<?php // 指明给谁推送,为空表示向所有在线用户推送 $to_uid = ""; // 推送的url地址,上线时改成自己的服务器地址 $push_api_url = "http://workerman.net:2121/"; $post_data = array( "type" => "publish", "content" => "这个是推送的测试数据", "to" => $to_uid, ); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $push_api_url ); curl_setopt ( $ch, CURLOPT_POST, 1 ); curl_setopt ( $ch, CURLOPT_HEADER, 0 ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data ); $return = curl_exec ( $ch ); curl_close ( $ch ); var_export($return);
関連記事: