• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    TP5 如何整合 WorkerMan 以及 GatewayWorker

    來源:懂視網 責編:小采 時間:2020-11-03 18:24:08
    文檔

    TP5 如何整合 WorkerMan 以及 GatewayWorker

    TP5 如何整合 WorkerMan 以及 GatewayWorker:下面由workerman教程欄目給大家介紹TP5整合 WorkerMan 以及 GatewayWorker的方法,希望對需要的朋友有所幫助!TP5整合GatewayWorkerWindows版安裝a)使用composer create-project topthink/think testTG,來安裝thinkphp5
    推薦度:
    導讀TP5 如何整合 WorkerMan 以及 GatewayWorker:下面由workerman教程欄目給大家介紹TP5整合 WorkerMan 以及 GatewayWorker的方法,希望對需要的朋友有所幫助!TP5整合GatewayWorkerWindows版安裝a)使用composer create-project topthink/think testTG,來安裝thinkphp5
    下面由workerman教程欄目給大家介紹TP5整合 WorkerMan 以及 GatewayWorker的方法,希望對需要的朋友有所幫助!

    TP5整合GatewayWorker

    Windows版安裝

    a)使用composer create-project topthink/think testTG,來安裝thinkphp5.

    b)進入thinkphp5的目錄,此處為testTG,使用composer require workerman/gateway-worker-for-win 安裝Windows版本的gateway。

    c)去官網下載Windows版的gateway-worker,里面有demo。http://www.workerman.net/download

    d)將下載的壓縮包解壓,將Applications/Yourapp中的文件全部復制到thinkphp5目錄application里面的任意文件夾,這里取名為push。

    e)將解壓后的文件夾中的start_for_win.bat復制到thinkphp5的根目錄,即與application同級的目錄。

    f)右鍵start_for_win.bat,點編輯,將里面的目錄改成自己的目錄,這里改為

    php applicationpushstart_register.php applicationpushstart_gateway.php applicationpushstart_businessworker.php
    Pause

    g)保存退出。雙擊運行。

    Linux版安裝

    a)使用composer create-project topthink/think testTG,來安裝thinkphp5.

    b)進入thinkphp5的目錄,此處為testTG,使用composer require workerman/gateway-worker 安裝Linux版本的gateway。

    c)去官網下載Linux版的gateway-worker,里面有demo。http://www.workerman.net/download

    d)將下載的壓縮包解壓,將Applications/Yourapp中的文件全部復制到thinkphp5目錄application里面的任意文件夾,這里取名為push。

    e)將解壓后的文件夾中的start.php復制到thinkphp5的根目錄,即與application同級的目錄。

    f)將start.php文件中最后部分forearch循環括號內的路徑改為自己的正確路徑。

    在命令行php start.php start 啟動。

    TP5整合WrokerMan

    Windows版安裝

    a)使用composer create-project topthink/think testTW,來安裝thinkphp5.

    b)進入thinkphp5根目錄,即testTW。先使用composer require topthink/think-worker,

    再使用composer require workerman/workerman-for-win,來安裝workerman。安裝成功之后刪除vendorworkermanworkerman。

    c)在thinkphp5根目錄(即與application同級目錄)創建server.php,編輯一下內容。

    <?php
    efine('APP_PATH', __DIR__ . '/application/');
    define('BIND_MODULE','push/Worker');
    // 加載框架引導文件
    require __DIR__ . '/thinkphp/start.php';

    d)創建workerman的controller,命名為Worker.php。在application/push/controller,目錄不存在自行創建。添加以下內容:

    protected $socket = 'websocket://127.0.0.1:2346'其中127.0.0.1為socket服務器所在的ip地址。此處監聽本機的2346端口。

    <?php
    namespace apppushcontroller;
    use thinkworkerServer;
    class Worker extends Server
    {
     protected $socket = 'websocket://127.0.0.1:2346';
     /**
     * 收到信息
     * @param $connection
     * @param $data
     */
     public function onMessage($connection, $data)
     {
     $connection->send('我收到你的信息了');
     }
     /**
     * 當連接建立時觸發的回調函數
     * @param $connection
     */
     public function onConnect($connection)
     {
     }
     /**
     * 當連接斷開時觸發的回調函數
     * @param $connection
     */
     public function onClose($connection)
     {
     
     }
     /**
     * 當客戶端的連接上發生錯誤時觸發
     * @param $connection
     * @param $code
     * @param $msg
     */
     public function onError($connection, $code, $msg)
     {
     echo "error $code $msg
    ";
     }
     /**
     * 每個進程啟動
     * @param $worker
     */
     public function onWorkerStart($worker)
     {
     }
    }

    e)在命令行下運行,啟動監聽服務php server.php

    f)任意位置新建一個html文件。其中內容為:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script>
    ws = new WebSocket("ws://localhost:2346");
    ws.onopen = function() {
     alert("連接成功");
     ws.send('tom');
     alert("給服務端發送一個字符串:tom");
    };
    ws.onmessage = function(e) {
     alert("收到服務端的消息:" + e.data);
    };
    </script>

    g)保存,用瀏覽器打開,就可以看到鏈接成功。

    Linux版安裝

    a)只需將Windows版安裝的b)步驟中的composer命令只執行:composer require topthink/think-worker。即可,其余步驟不變。

    簡單使用GatewayWorker

    <script type="text/javascript">
    /**
     * 與GatewayWorker建立websocket連接,域名和端口改為你實際的域名端口,
     * 其中端口為Gateway端口,即start_gateway.php指定的端口。
     * start_gateway.php 中需要指定websocket協議,像這樣
     * $gateway = new Gateway(websocket://0.0.0.0:7272);
     */
    ws = new WebSocket("ws://127.0.0.1:8282");
    // 服務端主動推送消息時會觸發這里的onmessage
    ws.onmessage = function(e){
     // json數據轉換成js對象
     var bindUrl = "{:url('push/BindClientId')}";
     var data = e.data;
     var type = data.type || '';
     switch(type){
     // Events.php中返回的init類型的消息,將client_id發給后臺進行uid綁定
     case 'init':
     // 利用jquery發起ajax請求,將client_id發給后端進行uid綁定
     $.post(bindUrl, {client_id: data.client_id}, function(data){
     }, 'json');
     break;
     // 當mvc框架調用GatewayClient發消息時直接alert出來
     default :
     var text = e.data;
     var str = '<li style="width:100%; height:60px; border:1px solid #000">' +text +'</li>';
     $('#message_box').append();
     // alert(e.data);
     }
    };
    </script>
    class Push{
     
     public function helloAction () {
     $uid = $_GET['uid'];
     session('uid', $uid);
     $view = new View;
     return $view->fetch();
     }
     public function BindClientIdAction () {
     
     $client_id = $_POST['client_id'];
     // 設置GatewayWorker服務的Register服務ip和端口,請根據實際情況改成實際值
     Gateway::$registerAddress = '127.0.0.1:1238';
     $bindUid = session('uid');
     // 假設用戶已經登錄,用戶uid和群組id在session中
     // client_id與uid綁定
     Gateway::bindUid($client_id, $bindUid);
     // 加入某個群組(可調用多次加入多個群組)
     // Gateway::joinGroup($client_id, $group_id);
     }
     public function AjaxSendMessageAction () {
     $message = $_POST['message'];
     // 設置GatewayWorker服務的Register服務ip和端口,請根據實際情況改成實際值
     Gateway::$registerAddress = '127.0.0.1:1238';
     GateWay::sendToAll($message);
     }
    }

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    TP5 如何整合 WorkerMan 以及 GatewayWorker

    TP5 如何整合 WorkerMan 以及 GatewayWorker:下面由workerman教程欄目給大家介紹TP5整合 WorkerMan 以及 GatewayWorker的方法,希望對需要的朋友有所幫助!TP5整合GatewayWorkerWindows版安裝a)使用composer create-project topthink/think testTG,來安裝thinkphp5
    推薦度:
    標簽: 以及 gateway 集成
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久亚洲AV永久无码精品| 欧美成人精品一级高清片| 亚洲精品小视频| 久久精品亚洲精品国产色婷| 亚洲国产精品尤物YW在线观看| 国产精品亚洲mnbav网站| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 亚洲精品高清一二区久久| 亚洲精品NV久久久久久久久久| 国产精品无码久久四虎| 欧美日韩精品一区二区三区| 成人精品一区二区三区免费看 | 国产三级精品三级在线专区1| 国产精品莉莉欧美自在线线| 国产精品九九久久免费视频 | 久久精品国产亚洲AV大全| 国产精品国产三级在线高清观看 | 国产麻豆精品入口在线观看| 久久99精品久久久久久动态图| 国产成人精品久久一区二区三区av | 国产成人精品综合在线观看| 久久精品亚洲一区二区三区浴池| 国产精品爽爽ⅴa在线观看| 国产中老年妇女精品| 亚洲&#228;v永久无码精品天堂久久| 69SEX久久精品国产麻豆| 亚洲国产主播精品极品网红| 91精品日韩人妻无码久久不卡| 日韩精品无码专区免费播放| 国产在线精品一区二区不卡麻豆| 6一12呦女精品| 日韩av无码久久精品免费| 免费精品久久久久久中文字幕 | 精品久久久久一区二区三区| 国产午夜福利精品久久| 国产在视频线精品视频二代| 久久久久99精品成人片直播| 在线观看亚洲精品福利片| 久久精品国产亚洲7777| 精品国产香蕉伊思人在线在线亚洲一区二区| 99精品视频在线观看免费|