我把原Http请求迁移到了Wss下。
背景:
Nginx转发到Wss 端口1下。
Workerman开启了端口1、2分别用于监听原Http请求与Php主动推送消息。
推送流程:
php调用端口2推到Workerman,Workerman推送到建立连接的客户端,Workerman向php返回发送结果。
工作流程如下:
1.客户端发起处理请求。
客户端请求由Nginx转发到Workerman 端口1。
端口1 Curl 本地Php Url处理。
Curl完成返回结果到客户端。
存在问题:
在第3步时有可能触发到Php的推送流程,此时会推送失败且卡在php fread推送结果。一直无法收到Workerman向php返回发送结果导致超时。求教大佬能给个思路吗。
部分代码:
[attach]745[/attach]
[attach]746[/attach]
innerWorker是什么协议?push函数用的是text协议,那么innerWorker也必须是text协议才能通讯。
还有就是看到innerWorker的onMessage里有打印,那么调试模式在终端会输出打印,是否有看到打印?
如果没有打印说明没有收到push函数内stream_socket_client的的数据,可能是stream_socket_client连错ip或者端口。
innerWorker也是text协议,监听接口跟push连接中的时一致的。
调试模式下也没有打印出东西。
stream_socket_client应该是没问题的,因为我把fread注释掉后就会变成正常,也能打印出push的消息了。
感谢大佬回复。