这很复杂,不一定是一个问题。如果有任何可能的帮助,我将不胜感激。
我读到过在没有服务器访问的情况下使用websocket是可能的,但我似乎找不到任何例子来说明它是如何实现的。我基于以下两件事得出了这个结论(我相信我需要这个):
-
在过去的几个小时里,我一直在努力想办法让websocket与我机器上的WAMP服务器一起工作,我可以root访问该服务器。已安装composer,但无法确定如何安装composer.phar文件来安装棘轮。已经尝试过其他PHP websocket实现(更希望它在PHP中),但仍然无法使它们工作。
-
我目前用来测试的网络主机是一个免费主机,不允许SSH访问。因此,即使我能找到使用root访问的websocket,对于主机来说,这也是一个没有意义的问题。
我也通过谷歌搜索找到了免费的VPS主机(当然,限制了所有内容),但有完全的root访问权限,但我更喜欢保留允许更多带宽的主机(我的免费主机目前是无限的)。我读到,你可以(也应该)将websocket服务器托管在与HTTP服务器不同的子域上,甚至可以在完全不同的域上运行。
当然,托管我自己的网站最终可能会更便宜,但在这种情况下,我甚至需要想办法让网络套接字在我的机器上工作。
所以,如果有人能理解我在问什么,这里有几个问题,是否可以在没有root访问权限的情况下使用websocket,如果可以,如何使用?当我无法找到composer.phar文件(我有composer.json,里面有棘轮代码,但不确定它是否在正确的目录中)时,我如何正确安装棘轮websocket,这个问题是第一个问题是否真的不可能。那么,是否可以在VPS上安装websocket服务器,并在完全不同的域上安装HTTP服务器?如果可以,是否有任何关于它的文档?
当然,我的意思是,有一种选择是使用AJAX,并强制浏览器每隔一段时间重新加载一个JS文件,无论是否有任何更改,都会使用jQuery-AJAX更新一系列div,但这可能会变得复杂,我甚至不确定这是否可能(我不明白为什么不可能),但我还是更喜欢WebSocket,因为我听说它们比这段话的资源需求要小得多。
在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.使用什么
您可以使用Socket.IO。它是一个用于开发基于JavaScript的实时web应用程序的库。它由两部分组成——客户端(在访问者浏览器上运行)和服务器端。基本用法几乎不需要任何Node.js的背景知识。以下是Socket.IO官方网站上一个简单聊天应用程序的示例教程。
2.托管
大多数托管提供商都有控制面板(cPanel),可以安装/激活不同的Apache插件等等。首先,你应该检查Node.js是否还不可用,如果不可用,你可以联系支持人员,询问他们是否可以选择包含它。
如果你在目前的主机提供商那里运气不好,你可以随时快速更换主机,因为有很多好的交易。谷歌肯定会在这里帮助你。以下是一个列表,其中包含一些(可能)最佳选项。请记住,尽管一些托管交易可能是付费的,但有很多低成本的选择。
3.带宽
当你担心"资源匮乏"的代码时,也许你可以尝试在AmazonCloudFront上托管一些内容。这是一个广泛使用的内容交付网络,当文件从离客户端服务器最近的地方加载时,它保证了快速连接和快速资源加载。最棒的是,你只为你实际使用的东西付费,所以如果你没有那么多流量,那么运行起来真的很便宜,而且仍然可靠!
希望这能有所帮助;)