1、看了以上手册我把start_gateway.php中的lanIp 修改为了外网IP。
2、修改后图片以上图
启动报错消息
Warning: stream_socket_server(): unable to connect to tcp://47.75.x.x:2900 (Cannot assign requested address) in /www/wwwroot/GatewayWorker/vendor/workerman/workerman/Worker.php on line 2226
修改完成后,当我启动 GatewayWorker,报错说无法连接2900 端口,我服务器是云服务器,安全组已全部打开了端口。搭建环境使用宝塔,已经在宝塔【安全】 也把端口全部打开了。
现在主要是GatewayClient 无法发送请求包,如果我把start_gateway.php->lanip修改 内网IP 或者 127.0.0.1 启动GatewayWorker 正常状态 并且使用ws连接没有任何问题,现在问题主要是 把lanip修改外网就无法启动,如果不修改 使用 GatewayClient 将报错以下图片
stream_socket_client(): unable to connect to tcp://127.0.0.1:2900
请大神指点下。麻烦了
有两个互不相干的问题:
1、
Warning: stream_socket_server(): unable to connect to tcp://47.75.x.x:2900 (Cannot assign requested address)
这个报错表明47.75.x.x 这个IP并不是当前机器的真实公网IP,这个可以通过命令ip a
来验证下2、对于gatewayclient的报错很好理解,单机环境填写127.0.0.1,但是你两台机器不在同一台服务器肯定不能填写127.0.0.1啦,进一步如果在同一个内网就填内网IP,否则填写真实的公网IP。
谢谢,刚才我也找到一篇文章【https://wenda.workerman.net/question/4734】
好像是阿里云服务器的问题,可是我也按你方法尝试使用【ip a】查询出来一个内网IP,全部修改为 外网IP 也不行,刚才这一篇文章也阿里云云服务器,竟然他能解决奇怪了。老哥你这边使用过阿里出现过这种情况过吗?
方法三没有问题。
使用方法一 出现
Warning: stream_socket_server(): unable to connect to tcp://47.75.x.x:2900 (Cannot assign requested address)
这是什么情况呢。
请问解决了吗?
我GatewayWorker部署在阿里云服务器上,GatewayClient在其他服务器
阿里云服务器有个公网ip47.95.XX.XX和私网IP 172.17.XX.XX
$gateway->lanIp 直接使用公网ip,GatewayWorker启动不成功,报错:stream_socket_server(): unable to connect to tcp://47.95.XX.XX:2901
如果$gateway->lanIp 使用私网ip,GatewayWorker启动成功,但使用GatewayClient会报错
我也是这样的问题,也在摸索中。。
阿里云 腾讯云环境,如果GatewayWorker 和 GatewayClient 不在一个局域网的话,GatewayClient无法与GatewayWorke通讯,不用折腾了。
如果不在一个局域网,建议按照手册使用开一个内部通讯端口那个方案
好像是这么回事。我折腾了一下午了,【http://doc2.workerman.net/push-in-other-project.html】方法3 没有问题。 方法一 确实无法连接。
我解决了,解决办法如下:https://eyunzhu.com/1302.html
我解决了,解决办法如下:https://eyunzhu.com/1302.html
这个方法有效,自己亲测可以。感谢。
分开部署,不嫌麻烦可以直接写IP归档文件,然后修改源码中方法回调的gatewayworker地址