使用流浪环境时无法连接Websocket

Posted

技术标签:

【中文标题】使用流浪环境时无法连接Websocket【英文标题】:Can't connect Websocket when using vagrant envirionment 【发布时间】:2015-03-17 04:47:03 【问题描述】:

我正在使用Vagrant box 使用puphpet,环境是PHP 5.5 + ubuntu 12.04 + apache + mysql。我的Vagrant VM ip:192.168.11.11,本地机器hosts指向192.168.11.11 reactphp.dev,就可以了。

而且,我正在使用此代码:https://github.com/muuknl/phprealtimechat 来测试 websocket。

然后我在 Chrome 浏览器中访问reactphp.dev,并使用:php bin/server.php 启动服务器脚本,输入用户名后,我得到了错误:

WebSocket connection to 'ws://192.168.11.11:2000/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT

将websocket ip改成`ws://127.0.0.1:2000/'效果很好,但是为什么我改成VM的ip地址就不行了?

【问题讨论】:

遇到同样的问题,这让我很生气。我们有一个 Angular/Mongo 构建,它依赖于 websockets 来实时更新。我们将在本周发布我们发现的任何内容。 这里也有同样的奇怪情况。你们有什么更新吗? 大家有没有找到解决办法?我正在尝试用 Vagrant Box 解决同样的问题。 你是否在 vagrant 上运行了多个 laravel 应用程序? vagrant box的网络是config.vm.network "private_network", ip: "192.168.11.11"上的私有网络还是映射端口? 【参考方案1】:

我已经有一段时间没有使用 PuPHPet,但是当我无法通过端口(减去端口 22)连接时,我不得不在 vagrant 机器中发出命令sudo ufw disable

如果uwf 不是您虚拟机的管理防火墙,请尝试sudo service iptables stopsudo iptables -F

也许他们从那时起改变了行为,但尝试一下还是不错的。

SSH 隧道(通过开放的 22 端口)可能允许您访问被代理的本地端口 2000。 VM 的实际端口 2000 可能由于防火墙而受到限制。

试试看,告诉我这是否有效。如果没有,我会深入挖掘。

【讨论】:

以上是关于使用流浪环境时无法连接Websocket的主要内容,如果未能解决你的问题,请参考以下文章

在graphql客户端使用时无法建立WebSocket连接

打开 websocket 连接时 on_open 函数无法运行?

在 Windows 7 主机上使用活动 *** 连接启动时,vagrant 配置的 virtualbox 无法访问互联网

firefox使用 websocket 报无法建立到 ws://服务器的连接错误,ie和chrom都可以,求解释。。

IOS系统苹果手机 WebSocket无法连接的问题

WebSocket java插件无法连接