运行 PHP Google 云虚拟机上的 Web 套接字

Run PHP Web Socket on Google Cloud Virtual Machine

我使用 bitnami LAMP 创建了 Google 云虚拟机实例来启动 PHP、MySQL 和 apache。

我创建了两个文件:

  1. server.php,即

    • 存储在 google 云端
    • 在端口 8086 上创建服务器套接字
    • 运行 使用 SSH 和 PHP-CLI
    • socket绑定成功并监听8086端口
  2. client.php,即

    • 存储在我的本地 PC 中
    • 尝试连接到 Google 云实例的 IP 和端口 (8086)。

现在的问题是,当client.php 尝试连接到端口 8086 上的服务器套接字时,花费的时间太长,然后显示错误提示:连接超时

  1. 关于 google 云平台上的网络套接字通信的任何参考?
  2. 是否有任何其他具有成本效益的方式来进行实时通信?
  3. 或者我应该尝试另一个 VPS 比如 Digital Ocean 吗?

有几乎完全相同的问题,但与节点有关。

您应该在 Google 云和虚拟机中允许防火墙中的端口,以使其正常工作。

在 Google Cloud 中,您应该像这样打开它:How to open a specific port such as 9090 in Google Compute Engine

如果您的 VM 中有 ubuntu,您打开端口键入: sudo ufw enable // 这允许防火墙 sudo ufw allow 8086 // 这允许你的端口

希望对您有所帮助。

我在 google 云虚拟机实例上有开放端口 但是如何在主机终端上 运行 php-socket.php

浏览器显示 Firefox 无法与位于 wss://domain:9090/beta/chat_socket/php-socket.php.

的服务器建立连接

重要! 您必须执行以下 3 个命令,以免失去通过 SSH 访问实例并允许 http 和 https 流量的权限:

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

如果不执行上述操作,您将在关闭 SSH 控制台后失去对 VM 的访问权限。

@Fernando León:如果您愿意,可以编辑您的答案并添加 3 行,谢谢。