検索
ホームページバックエンド開発PHPの問題PHPで新しい注文プロンプト機能を実装する方法

モールシステムを構築する過程で、注文リマインダー機能、つまり新しい注文が来たときにリマインドする機能が必要になります。私の実装方法は、注文後に「新しい注文があります。慎重に確認してください。」というプロンプトが表示されるというものです。

PHPで新しい注文プロンプト機能を実装する方法

#ajax ポーリング

(推奨学習: PHP プログラミングの入門から習熟まで
)

ポーリング方法は比較的単純です。つまり、毎回、リクエストを開始するまでの秒数です。プロジェクト内のオーダーがそれほど多くない場合、数秒ごとにリクエストを送信すると、サーバーに大きな負荷がかかります。

<script>
    setInterval("order()",59000000);//每59秒刷新查询一次
    var last_count = {$count};
    function order() {
 
        var data = {
            &#39;last_count&#39;:last_count
        };
 
        $.ajax({
            type: "POST",
            data: data,
            url: "{:url(&#39;Order/sendOrderNotice&#39;)}",//后台方法
            timeout: 60000,
            cache: false,
            async: false,
            dataType: "json",
            success: function(data) {
                if(data.status == 1){
                    var audio = document.getElementById( "play" ); //浏览器支持 audio
                    audio.play(); //播放提示音
                    last_count = data.last_count;
                    setTimeout(function(){
                        window.location.reload();
                        }, 3000);
                }
            }
        });
 
    }
 
</script>
上記は、このソリューションの核心です。独自のビジネスロジックに従ってバックエンドコードを記述してください。

Workerman


Workerman は、純粋に PHP で開発されたオープンソースの高性能 PHP ソケット サービス フレームワークです。

Workerman は車輪の再発明ではありません。これは MVC フレームワークではありませんが、低レベルでより一般的なソケット サービス フレームワークです。TCP エージェント、ラダー エージェント、ゲーム サーバー、メール サーバーなどの開発に使用できます。また、PHP バージョンの redis、PHP バージョンのデータベース、PHP バージョンの nginx、PHP バージョンの php-fpm なども開発します。 Workerman は、PHP が WEB しかできないという制約を開発者が完全に取り除くことを可能にする、PHP 分野におけるイノベーションと言えます。

実際、Workerman は nginx の PHP バージョンに似ており、コアもマルチプロセス Epoll ノンブロッキング IO です。各 Workerman プロセスは数万の同時接続を維持できます。

メモリ上に常駐するため、Apache、nginx、php-fpmなどのコンテナに依存せず、超高性能です。また、TCP、UDP、UNIXSOCKET、長時間接続、Websocket、HTTP、WSS、HTTPS などの通信プロトコルやさまざまなカスタム プロトコルもサポートしています。

タイマー、非同期ソケット クライアント、非同期 Mysql、非同期 Redis、非同期 Http、非同期メッセージ キューなど、多くの高性能コンポーネントが含まれています。

注文監視ページ コード:

<script src=&#39;http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js&#39;></script>
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
    // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
    var socket = io(&#39;http://www.tp5_test.com:2120&#39;); //http://www.tp5_test.com换成自己的域名或者ip
    // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数,这个ID可以随便写
    uid = 1557062581000;
    // socket连接后以uid登录
    socket.on(&#39;connect&#39;, function(){
        socket.emit(&#39;login&#39;, uid);
    });
    <!--// 后端推送来消息时-->
    socket.on(&#39;new_msg&#39;, function(msg){
 
        //两种处理方式
 
        // 1 追加到页面元素中,可以做成页面的弹窗
        $("#msg").append(msg); 
 
 
        //2 播放提示应 :
        if(msg == 1){
            var audio = document.getElementById( "play" ); //浏览器支持 audio
            audio.play(); //播放提示音
        }
 
 
    });
    // 后端推送来在线数据时
    socket.on(&#39;update_online_count&#39;, function(online_stat){
        console.log(online_stat);
    });
</script>

バックエンド コード:

//这个方法我随便写了写,具体的处理就是在支付完成回调以后,用用send_workerman方法就可以了。我是用sends来模型支付完成以后的回调
public function sends($id)
{
    // var_dump($id);die;
    if($id == 1){
      $this->send_workman($id);
    }else{
      echo &#39;没有发送消息&#39;;
    }
}


/**
 * @route(&#39;send_workman&#39;)
 */
public function send_workman($id)
{
    $to_uid = &#39;1557062581000&#39;; //和页面的uid一致,不填写也可以
    // 推送的url地址,使用自己的服务器地址
    $push_api_url = "http://www.tp5_test.com:2121/";
    $post_data = array(
        "type" => "publish",
        "content" => $id,
        "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 );
    curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:"));
    $return = curl_exec ( $ch );
    curl_close ( $ch );
    var_export($return);
}

以上がPHPで新しい注文プロンプト機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール