网络支架并发症

2022-08-30 23:44:41

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

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

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

  2. 我目前用来测试内容的网络主机是一个免费的主机,不允许SSH访问。因此,即使我能弄清楚如何获得具有root访问权限的websockets,当涉及到主机时,这也是一个有争议的问题。

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

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

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

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


答案 1

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

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

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

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


答案 2

还行。。。你有几个问题,所以我会尝试一个接一个地回答它们。

1. 使用什么

您可以使用 Socket.IO。它是一个用于开发基于JavaScript的实时Web应用程序的库。它由2部分组成 - 客户端(在访问者浏览器上运行)和服务器端。基本用法几乎不需要任何关于Node.js的背景知识。以下是官方 Socket.IO 网站上的简单聊天应用程序的示例教程。

2. 托管

大多数托管服务提供商都有控制面板(cPanel),具有安装/激活不同Apache插件等的可移植性。首先,您应该检查Node.js是否尚不可用,如果没有,您可以联系支持人员并询问他们是否可以选择包含此选项。

如果您对当前的托管服务提供商没有任何运气,您可以随时快速切换主机,因为那里有很多好交易。谷歌一定会在这里帮助你。以下是一个包含一些(也许)最佳选项的列表。请记住,尽管可能会支付一些托管交易,但有很多低成本选项可供选择。

3. 带宽

当您担心“资源匮乏”代码时,也许您可以尝试在 Amazon CloudFront 上托管您的一些内容。它是一个广泛使用的内容交付网络,可确保快速连接和快速资源加载,因为文件是从最近的客户端服务器加载的。最好的部分是,你只为你实际使用的东西付费,所以如果你没有那么多的流量,那么运行起来真的很便宜,而且仍然可靠!

希望这有助于;)