<pre id="qqiuc"></pre>
  • <fieldset id="qqiuc"><xmp id="qqiuc"></xmp></fieldset>
    \n<\/strong>\n<\/h1>\n<\/body>\n<\/html>\n

    亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

    ホームページ PHPフレームワーク Workerman メッセージプッシュにワーカーマンを使用する方法

    メッセージプッシュにワーカーマンを使用する方法

    Jan 17, 2020 pm 04:08 PM
    workerman

    次のコラム workerman チュートリアルでは、workerman を使用してメッセージをプッシュする方法を紹介します。困っている友人の役に立てば幸いです。

    メッセージプッシュにワーカーマンを使用する方法

    Workerman は、純粋に PHP で開発されたオープンソースの高性能 PHP ソケット サーバー フレームワークです。モバイル アプリ、モバイル通信、WeChat アプレット、モバイル ゲーム サーバー、オンライン ゲーム、PHP チャット ルーム、ハードウェア通信、スマート ホーム、車両のインターネット、モノのインターネット、その他の分野の開発で広く使用されています。

    TCP 長い接続をサポートし、Websocket、HTTP およびその他のプロトコルをサポートし、カスタム プロトコルをサポートします。非同期 Mysql、非同期 Redis、非同期 Http、非同期メッセージ キューなど、多くの高性能コンポーネントを備えています。同様のものには swoole や MeepoPS などがあります。

    まず、workerman の Web メッセージ プッシュ システム web-msg-sender をダウンロードします。

    # wget http://www.workerman.net/download/senderzip
    # unzip senderzip
    #cd web-msg-sender 
    #vim start.php
    use Workerman\Worker;
    // composer 的 autoload 文件
    include __DIR__ . &#39;/vendor/autoload.php&#39;;
    if(strpos(strtolower(PHP_OS), &#39;win&#39;) === 0)
    {
        exit("start.php not support windows, please use start_for_win.bat\n");
    }
    // 標(biāo)記是全局啟動(dòng)
    define(&#39;GLOBAL_START&#39;, 1);
    // 加載IO 和 Web
    require_once __DIR__ . &#39;/start_io.php&#39;;
    可以注釋掉 webServer 服務(wù) 沒什么用  省點(diǎn)資源
    // require_once __DIR__ . &#39;/start_web.php&#39;;
    // 運(yùn)行所有服務(wù)
    Worker::runAll();

    保存

    #vim start_io.php
    找到 將端口改成你要監(jiān)聽的端口 我是2120 記住要在安全組里入方向添加白名單
    // PHPSocketIO服務(wù) 
    $sender_io = new SocketIO(2120);
    服務(wù)端設(shè)置完畢后
    #php start.php start -d //開啟服務(wù) 并保持進(jìn)程

    使用するプッシュクラスはtp5です

    <?php
    namespace app\index\moudel; 
    /**
     * 推送事件
     * 典型調(diào)用方式:
     * $push = new WebSocket();
     * $push->setUser($user_id)->setContent($string)->push();//連貫操作
     *
     * Class WebSocket
     * @package app\index\moudel; 
     */
    class WebSocket
    {
        /**
         * @var string 目標(biāo)用戶id
         */
        protected $to_user = &#39;&#39;;
        /**
         * @var string 推送服務(wù)地址 
         */
        protected $push_api_url = &#39;http://127.0.0.1:2000&#39;;
        /**
         * @var string 推送內(nèi)容
         */
        protected $content = &#39;&#39;;
        /**
         * 設(shè)置推送用戶,若參數(shù)留空則推送到所有在線用戶
         *
         * @param string $user
         * @return $this
         */
        public function setUser($user = &#39;&#39;)
        {
            $this->to_user = $user ? : &#39;&#39;;
            return $this;
        }
        /**
         * 設(shè)置推送內(nèi)容
         *
         * @param string $content
         * @return $this
         */
        public function setContent($content = &#39;&#39;)
        {
            $this->content = $content;
            return $this;
        }
        /**
         * 推送
         */
        public function push()
        {
            $data = [
                &#39;type&#39; => &#39;publish&#39;,
                &#39;content&#39; => $this->content,
                &#39;to&#39; => $this->to_user,
            ];
            // var_dump($data);
            // var_dump($this->push_api_url);
            $ch = curl_init ();
            curl_setopt($ch, CURLOPT_URL, $this->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, $data);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(&#39;Expect:&#39;));
            $res = curl_exec($ch);
            curl_close($ch);
            dump($res);
        }
    }

    操作コントローラ

    <?php
    namespace app\index\controller;
    use think\Controller;
    use app\index\moudel\WebSocket;
    class Index extends Controller
    {
     /**
         * 推送一個(gè)字符串
         */
        public function push_msg(){
            $uid = input(&#39;uid&#39;,&#39;&#39;);//uid為空的時(shí)候推送給所有用戶
            $string = &#39;這是一個(gè)推送的測試&#39;;
            $string = input(&#39;msg&#39;) ? : $string;
            $push = new WebSocket();
            $push->setUser($uid)->setContent($string)->push();
        }
        /**
         * 推送目標(biāo)頁
         *
         * @return \think\response\View
         */
        public function targetPage(){
            return view();
        }
    }

    プッシュターゲットのフロントエンド表示

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <strong id="count"></strong>
    <h1 id="target"></h1>
    </body>
    </html>
    <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
    <script src=&#39;http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js&#39;></script>
    <script>
        jQuery(function ($) {
            // 連接服務(wù)端
            var socket = io(&#39;http://39.106.132.216:2000/&#39;); //這里當(dāng)然填寫真實(shí)的地址了
            // uid可以是自己網(wǎng)站的用戶id,以便針對uid推送以及統(tǒng)計(jì)在線人數(shù),但一定是唯一標(biāo)識(shí)
            uid = 321;
            // socket連接后以u(píng)id登錄
            socket.on(&#39;connect&#39;, function () {
                socket.emit(&#39;login&#39;, uid);
            });
            // 后端推送來消息時(shí)
            socket.on(&#39;new_msg&#39;, function (msg) {
                console.log("收到消息:" + msg);
                $(&#39;#target&#39;).append(msg).append(&#39;<br>&#39;);
            });
            // 后端推送來在線數(shù)據(jù)時(shí)
            socket.on(&#39;update_online_count&#39;, function (online_stat) {
                console.log(online_stat);
                $(&#39;#count&#39;).html(online_stat);
            });
        })
    </script>
    http://我自己的域名/index/index/pushAString?uid=123
    ok 為推送成功
    offline 為未在線
    fail 為失敗

    フロントエンドは、カスタマイズされた uid として 321 を正常に表示します。

    メッセージプッシュにワーカーマンを使用する方法

    以上がメッセージプッシュにワーカーマンを使用する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

    このウェブサイトの聲明
    この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

    ホットAIツール

    Undress AI Tool

    Undress AI Tool

    脫衣畫像を無料で

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中國語版

    SublimeText3 中國語版

    中國語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Workerman ドキュメントにファイルのアップロードとダウンロードを?qū)g裝する Workerman ドキュメントにファイルのアップロードとダウンロードを?qū)g裝する Nov 08, 2023 pm 06:02 PM

    Workerman ドキュメントでファイルのアップロードとダウンロードを?qū)g裝するには、特定のコード サンプルが必要です はじめに: Workerman は、シンプル、効率的、使いやすい高性能 PHP 非同期ネットワーク通信フレームワークです。実際の開発では、ファイルのアップロードとダウンロードが一般的な機(jī)能要件となりますが、この記事では、Workerman フレームワークを使用してファイルのアップロードとダウンロードを?qū)g裝する方法と、具體的なコード例を紹介します。 1. ファイル アップロード: ファイル アップロードとは、ローカル コンピューター上のファイルをサーバーに転送する操作を指します。以下が使用されます

    スウールとワーカーマンはどちらが良いですか? スウールとワーカーマンはどちらが良いですか? Apr 09, 2024 pm 07:00 PM

    Swoole と Workerman はどちらも高性能の PHP サーバー フレームワークです。 Swoole は、非同期処理、優(yōu)れたパフォーマンス、スケーラビリティで知られており、多數(shù)の同時(shí)リクエストと高スループットを処理する必要があるプロジェクトに適しています。 Workerman は、使いやすさや同時(shí)実行量が少ないプロジェクトに適した直感的な API を備え、非同期モードと同期モードの両方の柔軟性を提供します。

    Workerman ドキュメントの基本的な使用方法を?qū)g裝する方法 Workerman ドキュメントの基本的な使用方法を?qū)g裝する方法 Nov 08, 2023 am 11:46 AM

    Workerman ドキュメントの基本的な使用方法の実裝方法の紹介: Workerman は、開発者が同時(shí)実行性の高いネットワーク アプリケーションを簡単に構(gòu)築できるようにする高性能 PHP 開発フレームワークです。この記事では、インストールと構(gòu)成、サービスとリスニング ポートの作成、クライアント リクエストの処理など、Workerman の基本的な使用方法を紹介します。そして、対応するコード例を示します。 1. Workerman のインストールと構(gòu)成 コマンド ラインに次のコマンドを入力して、Workerman をインストールします。

    Workerman ドキュメントにタイマー機(jī)能を?qū)g裝する方法 Workerman ドキュメントにタイマー機(jī)能を?qū)g裝する方法 Nov 08, 2023 pm 05:06 PM

    Workerman ドキュメントにタイマー機(jī)能を?qū)g裝する方法 Workerman は、タイマー機(jī)能を含む豊富な機(jī)能を提供する強(qiáng)力な PHP 非同期ネットワーク通信フレームワークです。タイマーを使用して、指定された時(shí)間間隔內(nèi)でコードを?qū)g行します。これは、スケジュールされたタスクやポーリングなどのアプリケーション シナリオに非常に適しています。次に、Workerman でタイマー機(jī)能を?qū)g裝する方法と具體的なコード例を詳しく紹介します。ステップ 1: Workerman をインストールする まず、Worker をインストールする必要があります

    Workerman 開発: UDP プロトコルに基づいてリアルタイム ビデオ通話を?qū)g裝する方法 Workerman 開発: UDP プロトコルに基づいてリアルタイム ビデオ通話を?qū)g裝する方法 Nov 08, 2023 am 08:03 AM

    Workerman 開発: UDP プロトコルに基づくリアルタイム ビデオ通話 概要: この記事では、Workerman フレームワークを使用して、UDP プロトコルに基づくリアルタイム ビデオ通話機(jī)能を?qū)g裝する方法を紹介します。 UDP プロトコルの特性を深く理解し、コード例を通じて、シンプルだが完全なリアルタイム ビデオ通話アプリケーションを構(gòu)築する方法を示します。はじめに: ネットワーク通信において、リアルタイムのビデオ通話は非常に重要な機(jī)能です。従來の TCP プロトコルでは、リアルタイム性の高いビデオ通話を?qū)g裝する場合、伝送遅延などの問題が発生する可能性があります。そしてUDP

    Workermanドキュメントにリバースプロキシ機(jī)能を?qū)g裝する方法 Workermanドキュメントにリバースプロキシ機(jī)能を?qū)g裝する方法 Nov 08, 2023 pm 03:46 PM

    Workerman ドキュメントでリバース プロキシ機(jī)能を?qū)g裝するには、具體的なコード例が必要です はじめに: Workerman は、豊富な機(jī)能と強(qiáng)力なパフォーマンスを提供する高性能 PHP マルチプロセス ネットワーク通信フレームワークであり、Web のリアルタイム通信や長時(shí)間の通信で広く使用されています。接続、サービス シナリオ。このうち、Workermanはリバースプロキシ機(jī)能もサポートしており、サーバーが外部サービスを提供する際の負(fù)荷分散や靜的リソースのキャッシュを?qū)g現(xiàn)できます。この記事ではWorkermanを利用してリバースプロキシ機(jī)能を?qū)g裝する方法を紹介します。

    Workerman を使用して高可用性負(fù)荷分散システムを構(gòu)築する方法 Workerman を使用して高可用性負(fù)荷分散システムを構(gòu)築する方法 Nov 07, 2023 pm 01:16 PM

    Workerman を使用して高可用性ロード バランシング システムを構(gòu)築する方法には、特定のコード サンプルが必要です?,F(xiàn)代のテクノロジーの分野では、インターネットの急速な発展に伴い、大量の同時(shí)リクエストを処理する必要がある Web サイトやアプリケーションがますます増えています。高可用性と高性能を?qū)g現(xiàn)するために、負(fù)荷分散システムは不可欠なコンポーネントの 1 つになっています。この記事では、PHP オープン ソース フレームワーク Workerman を使用して高可用性負(fù)荷分散システムを構(gòu)築する方法を紹介し、具體的なコード例を示します。 1. ワーカーマンワークの紹介

    Workermanドキュメントにファイル転送機(jī)能を?qū)g裝する Workermanドキュメントにファイル転送機(jī)能を?qū)g裝する Nov 08, 2023 pm 03:39 PM

    Workerman は、PHP をベースに開発された高性能な非同期イベント ドリブン フレームワークで、TCP/UDP プロトコルでの長時(shí)間接続の開発を容易に実現(xiàn)できます。さらに、Workerman はファイル転送を?qū)g現(xiàn)する機(jī)能も提供しており、大規(guī)模なファイル転送やデータのバックアップなどのシナリオで使用できます。この記事では、Workerman にファイル転送機(jī)能を?qū)g裝する方法と具體的なコード例を紹介します。 1. ファイルアップロード機(jī)能 ファイルアップロード機(jī)能を?qū)g裝するには、クライアントがアップロードするファイルをサーバーに送信し、サーバーがそれを検証する必要があります。

    See all articles