这很复杂,不一定是一个问题。我很感激任何可能的帮助。
我已经读过可以在没有服务器访问权限的情况下使用websockets,但我似乎无法找到任何显示它是如何的示例。基于以下两点,我得出了这个结论(我相信我需要这个):
过去几个小时我一直在努力想弄清楚如何让websockets与我的机器上的WAMP服务器一起工作,我有root权限。安装了作曲家,但无法弄清楚如何安装composer.phar文件来安装棘轮。尝试过其他PHP websocket实现(希望它是在PHP中),但仍然无法让它们工作。
我用来测试的当前webhost是免费主机,不允许SSH访问。因此,即使我可以找到具有root访问权限的websockets,但对于主机而言,这是一个没有实际意义的点。
我也通过谷歌搜索找到了免费的VPS主机(当然,限制了所有内容)但是拥有完全root权限,但我更喜欢保留允许更多带宽的东西(我的免费主机目前是无限制的)。我已经读过你可以(并且应该)将websocket服务器托管在与HTTP服务器不同的子域上,并且它甚至可以完全在不同的域上运行。
托管我自己的网站最终也可能更便宜,当然也没有真正的线索,但在这种情况下,我需要弄清楚如何让我的机器上运行websockets。
所以,如果有人能够理解我在问什么,这里有几个问题,是否可以使用没有root访问权限的websockets,如果有的话,怎么做?当我无法弄清楚composer.phar文件时,我如何正确安装棘轮websockets(我的composer.json中包含棘轮代码,但不确定它是否在正确的目录中),这个问题是如果第一个问题不是真的可能。那么可以在VPS上安装websocket服务器并将HTTP服务器放在一个完全不同的域上吗?如果有的话,是否有关于它的任何文档?
我的意思是,当然,有一个选项可以使用AJAX并强制浏览器在每个时间段重新加载JS文件,这将使用jQuery ajax更新一系列div,无论是否有任何更改,但是可能会变得复杂,我甚至不确定这是否可能(我不明白为什么不会这样),但是我再次更喜欢使用websockets,因为我听说它们比一些资源要少得多这一段将是。
答案 0 :(得分:6)
在vanilla LAMP下运行的普通PHP文件(即Apache下的mod_php)无法处理WebSocket连接。它无法执行协议升级,更不用说实际执行实时通信,至少通过Apache。从理论上讲,您可以对运行TCP服务器以提供WebSocket请求的PHP文件进行非常长时间运行的Web请求,但这是不切实际的,我怀疑共享主机实际上是否允许PHP执行此操作。
可能有一些共享主机可以使用PHP进行WebSocket托管,但是如果没有SSH / shell访问或者在Web服务器之外运行PHP的其他方式,他们无法提供。如果他们只是给你一个目录来上传PHP文件,并为他们提供Apache服务,那你就不走运了。
至于您在使用Composer时遇到的问题,我不知道是否可以在没有某种shell访问权限的情况下在共享主机上运行composer.phar
。有些主机(例如Heroku)对Composer有特定的支持。
关于在完全不同的域上运行WebSocket服务器,您确实可以这样做。只需指向您的JavaScript即可连接到该域,并确保WebSocket服务器提供必要的跨源资源共享标头。
答案 1 :(得分:-1)
好的......你有几个问题,所以我会尝试逐一回答。
<强> 1。使用方法
您可以使用Socket.IO。它是一个用于开发基于JavaScript的实时Web应用程序的库。它由两部分组成 - 客户端(在访问者浏览器上运行)和服务器端。基本用法几乎不需要任何关于Node.js的背景知识。 {/ 3}}官方Socket.IO网站上的简单聊天应用程序教程。
<强> 2。托管强>
大多数托管服务提供商都有控制面板(cPanel),可以安装/激活不同的Apache插件,等等。首先,您应该检查Node.js是否已经不可用,如果没有,您可以联系支持人员并询问他们是否包含此选项。
如果您当前的托管服务提供商没有运气,您可以随时快速切换主机,因为那里有很多好的交易。谷歌肯定会帮助你。 Here is an example包含一些(可能)最佳选项。请注意,虽然可能会支付一些托管交易,但有很多低成本选项可供选择。
第3。带宽强>
由于您担心“资源匮乏”代码,您可以尝试在Here is a list上托管您的部分内容。它是一种广泛使用的内容传送网络,可以保证快速连接和快速加载资源,因为文件是从最近的客户端服务器加载的。最好的部分是你只需付你实际使用的费用,所以如果你没有那么多的流量,那么运行起来真的很便宜并且仍然可靠!
希望这会有所帮助;)