gpt4 book ai didi

php - Websocket 并发症

转载 作者:IT王子 更新时间:2023-10-29 00:13:26 29 4
gpt4 key购买 nike

这个很复杂,不一定是一个问题。如果有任何可能的帮助,我将不胜感激。

我读过可以在没有服务器访问权限的情况下使用 websockets,但我似乎找不到任何示例来说明它是如何实现的。基于以下两点,我得出了这个结论(我相信我需要这个):

  1. 在过去的几个小时里,我一直在苦苦思索如何让 websockets 与我机器上的 WAMP 服务器一起工作,我拥有 root 访问权限。已安装 Composer ,但无法弄清楚如何安装 composer.phar 文件来安装棘轮。已尝试其他 PHP websocket 实现(最好是 PHP),但仍然无法使它们工作。

  2. 我用来测试的当前虚拟主机是免费主机,并且不允许 SSH 访问。因此,即使我能找到具有 root 访问权限的 websockets,当涉及到主机时,这也是一个有争议的问题。

我还通过谷歌搜索找到了免费的 VPS 主机(当然,限制了所有内容)但具有完全的根访问权限,但我更愿意保留允许更多带宽的东西(我的免费主机目前是无限的)。我读到过,您可以(并且应该)将 websocket 服务器托管在与 HTTP 服务器不同的子域上,并且它甚至可以完全在不同的域上运行。

托管我自己的网站最终可能会更便宜,当然对此没有真正的线索,但在那种情况下我需要弄清楚如何让 websockets 在我的机器上工作。

所以,如果有人能理解我在问什么,这里有几个问题,是否可以在没有 root 访问权限的情况下使用 websockets,如果可以,如何使用?当我无法弄清楚 composer.phar 文件时如何正确安装棘轮 websockets(我有 composer.json 里面有棘轮代码但不确定它是否在正确的目录中),这个问题是如果第一个问题不是真的有可能。那么是否可以在 VPS 上安装 websocket 服务器并在完全不同的域上安装 HTTP 服务器?如果是这样,是否有任何相关文档?

我的意思是,当然,有一个选项可以使用 AJAX 并强制浏览器每隔一段时间重新加载一个 JS 文件,这将使用 jQuery ajax 来更新一系列 div,而不管是否有任何更改,但是可能会变得复杂,我什至不确定这是否可能(我不明白为什么不可以),但我还是更喜欢 websockets,因为我听说它们比某些资源消耗少得多这一段应该是这样的。

最佳答案

在 vanilla LAMP 下运行的普通 PHP 文件(即 Apache 下的 mod_php)无法处理 WebSocket 连接。它无法执行协议(protocol)升级,更不用说实际执行实时通信了,至少通过 Apache 是这样。理论上,您可以对 PHP 文件发出长时间运行的 Web 请求,该文件运行 TCP 服务器来为 WebSocket 请求提供服务,但这是不切实际的,我怀疑共享主机是否真的允许 PHP 这样做。

可能有一些共享主机使使用 PHP 托管 WebSocket 成为可能,但如果没有 SSH/shell 访问或其他一些在 Web 服务器外部运行 PHP 的方式,它们就无法提供这种服务。如果他们只是给你一个上传 PHP 文件的目录,并用 Apache 提供它们,那你就不走运了。

至于您使用 Composer 遇到的麻烦,我不知道是否可以在没有某种 shell 访问权限的情况下在共享主机上运行 composer.phar。一些主机(例如 Heroku)对 Composer 有特定的支持。

关于在完全不同的域上运行 WebSocket 服务器,您确实可以这样做。只需将您的 JavaScript 指向该域,并确保 WebSocket 服务器提供必要的跨源资源共享 header 。

关于php - Websocket 并发症,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515869/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com