【已解决】websocket嵌套两层AsyncTcpConnection,无法在第二层调用第一层的$connection->send()

lxping2

答:AsyncTcpConnection可以嵌套,只是因为AsyncTcpConnection是异步的,我在繁忙任务没执行完毕之前就把AsyncTcpConnection断开了,所以收不到回调。解决办法是,让进程B决定什么时候断开AsyncTcpConnection。

通过websocket进程A,调用AsyncTcpConnection执行繁忙任务进程B,再在进程B中通过AsyncTcpConnection连接smtp邮件服务器(假设叫进程C),然后在smtp服务器(进程C)返回信息后,想调用进程B的$connection->send(),把smtp的结果发回websocket进程A,但是进程A收不到,请问为什么?

如下图:run()是进程B,发送aaa可以收到,发送bbb收不到
截图
截图
两次打印中,b位置的$connection没有onMessage对象
第一次打印:
截图
第二次打印:
截图

2343 1 0
1个回答

walkor 打赏

应该是$connection连接关闭了

  • linf 2021-11-19

    请问下这个要怎么解决呢,最近刚好也遇到了这个问题

年代过于久远,无法发表回答
×
🔝