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

OnMessage 無法收到數(shù)據(jù)

aidong_wang

版本:Gateway 最新版本

自定義協(xié)議

在 decode 方法中,對(duì)收到的數(shù)據(jù)進(jìn)行解析,在 decode 方法的結(jié)尾處,返回一個(gè)數(shù)組,結(jié)果如:

某些情況下,在 decode 中已經(jīng)解析了數(shù)據(jù),并且 decode 方法也正確的執(zhí)行結(jié)束了,但 onMessage 函數(shù)并沒有收到新數(shù)據(jù)。

可能的原因有哪些?

請(qǐng)問在哪里可以看到錯(cuò)誤信息?包括 gateway 本身錯(cuò)誤信息?

7690 15 0
15個(gè)回答

walkor 打賞

一般是協(xié)議處理有問題或者客戶端發(fā)的數(shù)據(jù)不符合協(xié)議

  • 暫無評(píng)論
aidong_wang

協(xié)議是自定義的,而且已經(jīng)進(jìn)入了 decode 函數(shù),我自己都解析成功了

  • 暫無評(píng)論
aidong_wang

decode 的函數(shù)的返回值有限制嗎?

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

返回值任意,如果進(jìn)了decode沒有數(shù)據(jù),可能是返回的就是空數(shù)據(jù)

  • 暫無評(píng)論
aidong_wang

不是數(shù)據(jù)空,而是 decode 方法正確的執(zhí)行結(jié)束后,OnMessage 函數(shù)并沒有被執(zhí)行。OnMessage 函數(shù)第一行就是打印日志,但在某些情況下,一直未被執(zhí)行,有些情況是正常的

  • 暫無評(píng)論
aidong_wang

decode 函數(shù)使用 try catch 有關(guān)系嗎?

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

再檢查下協(xié)議代碼吧。

  • 暫無評(píng)論
aidong_wang

我再檢查一下, decode 的函數(shù)的 try catch 去掉了,OnMessage 就正常收到了

  • 暫無評(píng)論
aidong_wang

為 Workerman 項(xiàng)目捐贈(zèng)了100元,僅表心意,謝謝

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

非常感謝

  • 暫無評(píng)論
aidong_wang

2017-05-24 20:41:01 pid:20362 process_timeout:

1 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Events/Select.php(231): pcntl_signal_dispatch()

2 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(1561): Workerman\Events\Select->loop()

3 /data/wwwroot/sd_watch_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(183): Workerman\Worker->run()

4 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(959): GatewayWorker\BusinessWorker->run()

5 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(922): Workerman\Worker::forkOneWorker(Object(GatewayWorker\BusinessWorker))

6 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(430): Workerman\Worker::forkWorkers()

7 /data/wwwroot/sd_watch_gateway/start.php(38): Workerman\Worker::runAll()

8 {main}

2017-05-24 20:44:52 pid:20380 process_timeout:

1 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Events/Select.php(231): pcntl_signal_dispatch()

2 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(1561): Workerman\Events\Select->loop()

3 /data/wwwroot/sd_watch_gateway/vendor/workerman/gateway-worker/src/BusinessWorker.php(183): Workerman\Worker->run()

4 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(959): GatewayWorker\BusinessWorker->run()

5 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(922): Workerman\Worker::forkOneWorker(Object(GatewayWorker\BusinessWorker))

6 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(1075): Workerman\Worker::forkWorkers()

7 /data/wwwroot/sd_watch_gateway/vendor/workerman/workerman/Worker.php(433): Workerman\Worker::monitorWorkers()

8 /data/wwwroot/sd_watch_gateway/start.php(38): Workerman\Worker::runAll()

9 {main}

這個(gè)可能是 decode 方法正確的執(zhí)行了,但 OnMessage 方法不被調(diào)用的可能原因?

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

onMessage里的業(yè)務(wù)太慢了,超時(shí)了。
比如onMessage里執(zhí)行30秒才執(zhí)行完,
那么第二個(gè)請(qǐng)求要等第一個(gè)onMessage執(zhí)行完畢才能執(zhí)行onMessage,所以會(huì)有onMessae沒執(zhí)行的假象

  • 暫無評(píng)論
aidong_wang

是的,剛發(fā)現(xiàn)是之前在 OnMessage 調(diào)用的一個(gè)函數(shù)里,有個(gè) sleep(60)的代碼
有沒有 OnMessage 異步處理邏輯的方法?

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

慢的任務(wù)可以交給其它進(jìn)程去做,避免阻塞主業(yè)務(wù)
比如這個(gè)
http://doc.workerman.net/315283

  • 暫無評(píng)論
aidong_wang

非常感謝,之前通讀了一遍手冊(cè),感覺 還是讀的不精。謝謝了

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