问题描述:
之前写workman测试的时候可以推送数据,客户端也能收到数据,但是在大概在连接一天之后会出现推送消息,客户端就会收到不信息,重启workman之后又能正常接收数据的情况
总结原因:
1.客户端主动断开(监听并检测发现客户端并没有断开)
2.没有设置心跳,防火墙干掉不活跃的连接(之前设置的5分钟一次,后来改成50秒检测一次,还是会出现推送消息收不到的情况)
3.客户端发送的数据包非法,服务端主动关闭连接(在服务端关闭映射之前加了日志,服务端并没有关闭链接)
4.应用层发送缓冲区爆满(加了onBufferFull,onBufferDrain,onError进行检测,并设置了当前连接的应用层发送缓冲区大小$connection->maxSendBufferSize=102400;)
5.网络原因(这种情况少)
一般推送消息失败的可能原因就这几种,可以一一排查