繁体   English   中英

Websocket并发症

[英]Websocket complications

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

我已经读过可以在没有服务器访问的情况下使用websockets,但我似乎无法找到任何显示它是如何的示例。 基于以下两点,我得出了这个结论(我认为我需要这个):

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

  2. 我用来测试的当前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,因为我听说他们的资源非常少于某些段落会。

在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.带宽

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

希望这可以帮助 ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM