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

用AsyncTcpConnection向服務(wù)器發(fā)送指令,獲取服務(wù)器返回的數(shù)據(jù)。

workerofmine

在cmd下執(zhí)行 php test.php,可以正常收發(fā)數(shù)據(jù)。
但指令是由用戶發(fā)送,所以要用PHP寫個(gè)接口獲取用戶的指令,然后運(yùn)行workerman返回指令對(duì)應(yīng)的數(shù)據(jù)。
想請(qǐng)教下接口獲取用戶發(fā)來(lái)的指令后,怎么運(yùn)行workerman?

5094 10 0
10個(gè)回答

walkor 打賞

workerman是命令行啟動(dòng)的,不能通過(guò)網(wǎng)頁(yè)啟動(dòng)。

你可以監(jiān)聽一個(gè)http協(xié)議的端口,$this->worker->onMessage 里接收到客戶端http請(qǐng)求后new AsncTcpConnection去請(qǐng)求遠(yuǎn)程數(shù)據(jù)。然后命令行啟動(dòng)這個(gè)http服務(wù)。

  • 暫無(wú)評(píng)論
workerofmine

監(jiān)聽一個(gè)http協(xié)議的端口,是先new一個(gè)woker,然后在這個(gè)worker的onMessage 中再new AsncTcpConnection,這個(gè)我之前試過(guò)了,報(bào)錯(cuò)說(shuō)window下不支持同時(shí)實(shí)例化多個(gè)worker,是這樣嗎?

  • 暫無(wú)評(píng)論
walkor 打賞

你__construct源碼里

$this->worker = new Worker();
改成
$this->worker = new Worker('http://0.0.0.0:8585');
$this->worker->onMessage = array($this, 'onMessage');

然后給Bases寫一個(gè)onMessage方法。

  • 暫無(wú)評(píng)論
workerofmine

是這個(gè)意思嗎,onMessage里面寫什么內(nèi)容,跟start方法怎么關(guān)聯(lián)?

 public function __construct($url,$base,$orderArr = []){
        $this -> url        = $url;
        $this -> base       = $base;
        $this -> orderArr   = $orderArr;

        $this->worker       = new Worker('http://0.0.0.0:8585');
        $this->worker->onMessage = array($this, 'onMessage');
        $this -> worker -> name  = 'normal';

        $this -> start();

    }

    public function onMessage(){
        //這里面寫什么內(nèi)容?
    }

    public function start(){
        $this -> worker -> onWorkerStart = function(){
            $con              = new AsyncTcpConnection($this -> url);
            //其他代碼
        } 
  }
  • 暫無(wú)評(píng)論
walkor 打賞

onMessage的內(nèi)容就是start的內(nèi)容。start方法可以去掉了

  • 暫無(wú)評(píng)論
workerofmine

onMessage 不需要參數(shù)吧,我現(xiàn)在直接實(shí)例化傳參,然后命令行運(yùn)行test.php,一點(diǎn)反應(yīng)都沒有。

  • 暫無(wú)評(píng)論
walkor 打賞

onMessage用法去看手冊(cè)吧。。。

  • 暫無(wú)評(píng)論
workerofmine

突然又感覺懵了,我是這樣理解的,您給看看理解得對(duì)不對(duì)。
要想實(shí)現(xiàn)我說(shuō)的功能,就得在onMessage里面使用AsyncTcpConnection才行。
但onMessage的作用是當(dāng)Workerman收到數(shù)據(jù)時(shí)才觸發(fā)。
所以是不是需要再寫一個(gè)onConnect,用來(lái)接收用戶發(fā)送的指令發(fā)給服務(wù)器。
這樣在AsyncTcpConnection的onConnect中就不需要發(fā)送指令到服務(wù)器,只需在onMessage里面獲取服務(wù)器返回的數(shù)據(jù),然后進(jìn)行數(shù)據(jù)庫(kù)操作就行了。
是這個(gè)意思嗎?

或者說(shuō)不需要再寫onConnect,還是在AsyncTcpConnection的onConnect中向服務(wù)器發(fā)指令,在onMessage中獲取返回的數(shù)據(jù)?

  • 暫無(wú)評(píng)論
workerofmine

如果不需要再寫onConnect,還是在AsyncTcpConnection的onConnect中向服務(wù)器發(fā)指令,在onMessage中獲取返回的數(shù)據(jù),這樣寫對(duì)嗎?


    public function __construct($url,$base,$orderArr = []){
        $this -> url = $url;
        $this -> base = $base;
        $this -> orderArr = $orderArr;

        $this -> worker = new Worker('http://0.0.0.0:8585');
        $this -> worker -> onMessage = array($this,'onMessage');
        $this -> worker -> name = 'normal';
        $this-> onMessage();   //是這樣觸發(fā)onMessage方法?
    }

    public function onMessage(){

        $this -> worker -> onMessage = function(){     //是onMessage還是onWorkerStart
            $con = new AsyncTcpConnection($this -> url);
            $con -> onConnect = function($con){
                //拼接、發(fā)送指令
            };
            $con -> onMessage = function($con,$returnDatas){
                //獲取服務(wù)器返回的數(shù)據(jù),進(jìn)行數(shù)據(jù)庫(kù)操作
            };
        };
        Worker ::runAll();
 }
  • 暫無(wú)評(píng)論
workerofmine

我按照上面的方法試了,還是和之前接口返回的一樣,請(qǐng)求超時(shí),是哪沒理解寫錯(cuò)了嗎,我總感覺快寫出來(lái)了,麻煩您再指點(diǎn)一下吧。

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??