国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker怎么和thinkphp3.2.3整合使用,請大神指點(diǎn)

z325988

我想通過GatewayWorker做一個(gè)利用websocket實(shí)時(shí)推送消息給客戶端的功能(類似股票指數(shù)的實(shí)時(shí)更新),我現(xiàn)在是通過在event中寫一個(gè) onwebsocketconnect然后利用add方法每兩秒推送一次數(shù)據(jù),這時(shí)我的思路是希望在add里面去調(diào)用我在thinkphp里面寫的一個(gè)公用方法brokerAccount_data()來把數(shù)據(jù)傳給GatewayWorker,然后再由GatewayWorker傳給客戶端,但是,我現(xiàn)在無法調(diào)到我寫在thinkphp中的函數(shù)。。。還請大神指教,謝謝!

public static function onWebSocketConnect($client_id,$data){
       if ($data != 'http://local.gendan5.com'){
           Gateway::closeClient($data);
       }else{
//           $xmlInfo = brokerAccount_data('xm-zero',2,'./cache/xm-zero');
           Gateway::sendToClient($client_id,json_encode($data));
           \Workerman\Lib\Timer::add(2,function ($client_id,$data){
               Gateway::sendToClient($client_id,json_encode($data));
               require('http://local.gendan5.com/tp/index.php?s=/Home/GwSendMessage');
//               $func = A('Common/function.php');
               $xmlInfo = brokerAccount_data('xm-zero',2);
           },array($client_id,$data));
       }
   }

圖片
?

4703 2 0
2個(gè)回答

ysy49271743

這里是無法調(diào)用tp里的公共函數(shù)的,你可以把這個(gè)函數(shù)放在gateway里,或者定義一個(gè)類,實(shí)例化并調(diào)用它

  • z325988 2019-02-26

    你好,感謝你的解答,我后來想了一個(gè)方法,通過使用curl去獲取我的這個(gè)方法的鏈接的方式,可以拿到數(shù)據(jù)了,但是,又出現(xiàn)了一個(gè)問題,就是我需要傳參到這個(gè)方法中,但是我不知道應(yīng)該怎么才能夠把我需要的參數(shù)通過前端傳到onwebsocketconnect這個(gè)方法中來,這個(gè)請問應(yīng)該怎么處理好一點(diǎn)?

    public static function onWebSocketConnect($client_id,$data){
    if ($data['server']['HTTP_ORIGIN'] != 'http://local.gendan5.com'){
    Gateway::closeClient($data['server']['HTTP_ORIGIN']);
    }else{
    Gateway::sendToClient($client_id,json_encode($data));
    \Workerman\Lib\Timer::add(2,function ($client_id,$data){
    $url = 'http://local.gendan5.com/tp/index.php/?s=Home/test/test_file_get_contents';
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $xmlInfo = curl_exec($curl);
    curl_close($curl);
    Gateway::sendToClient($client_id,$xmlInfo);
    },array($client_id,$data));
    }

z325988

我后來想了一個(gè)方法,通過使用curl去獲取我的這個(gè)方法的鏈接的方式,可以拿到數(shù)據(jù)了,但是,又出現(xiàn)了一個(gè)問題,就是我需要傳參到這個(gè)方法中,但是我不知道應(yīng)該怎么才能夠把我需要的參數(shù)通過前端傳到onwebsocketconnect這個(gè)方法中來,這個(gè)請問應(yīng)該怎么處理好一點(diǎn)?

public static function onWebSocketConnect($client_id,$data){
       if ($data != 'http://local.gendan5.com'){
           Gateway::closeClient($data);
       }else{
           Gateway::sendToClient($client_id,json_encode($data));
           \Workerman\Lib\Timer::add(2,function ($client_id,$data){
               $url = 'http://local.gendan5.com/tp/index.php/?s=Home/test/test_file_get_contents';
               $curl = curl_init($url);
               curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
               $xmlInfo = curl_exec($curl);
               curl_close($curl);
               Gateway::sendToClient($client_id,$xmlInfo);
           },array($client_id,$data));
       }
  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??