GatewayWorker通过docker容器端口映射后,通过宿主机ip访问会出错,不兼容!

dignfei

bug描述

宿主机ip 192.168.188.88
设置 $register = new Register('text://0.0.0.0:9138');
php容器映射端口

  • "9138:9138"
  • "2900:2900"
  • "2901:2901"
  • "2902:2902"
  • "2903:2903"
    php容器内运行php8:
    $gateway->lanIp = "127.0.0.1";能正常访问,
    截图
    改为$gateway->lanIp = '192.168.188.88'; 就会报错:
    截图

    程序代码或配置

GatewayWorker的demo代码
http://www.workerman.net/download/GatewayWorker.zip

期待的结果及实际结果

这里写期待结果及实际结果

$gateway->lanIp = "127.0.0.1";能正常访问,
改为宿主机的ip,$gateway->lanIp = '192.168.188.88'; 也应该正常访问

重现bug的步骤

1.docker 下载php8容器,设置容器端口映射
php容器映射端口

系统环境及workerman/webman等具体版本

php8.10,
GatewayWorker最新版 3.0.27
workerman 4.0.30

703 1 0
1个回答

walkor
  • dignfei 2023-02-20

    1.能用,只能设置$gateway->innerTcpWorkerListen="0.0.0.0" ;
    2.用容器ip不行,因为每次重启电脑ip都在变。
    3.Gateway::$registerAddress = '192.168.188.88:1238'; 这个没用了,设不设置都一样

  • dignfei 2023-02-20

    谢谢老大

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