不能在XAMPP上使用端口80或443作为WebSocket

时间:2015-07-29 01:19:22

标签: php websocket port rfc6455

我有一个Windows 7 XAMPP设置,用于快速测试PHP代码。我一直在使用我最近编写的PHP WebSocket脚本运行测试,除了端口80和443之外,它在我测试的每个端口上都能正常工作.80和443都不适用于ws或{{1 }} 协议。当我尝试任何一个端口时,绝对没有任何东西会通过,脚本将只是坐在那里永远运行。

official WebSocket spec (RFC 6455)州:

  

WebSocket协议试图解决现有的目标   现有HTTP上下文中的双向HTTP技术   基础设施;因此,它被设计为通过HTTP端口80和   443 ......

  

默认情况下,WebSocket协议将端口80用于常规WebSocket   通过隧道连接的WebSocket连接的连接和端口443   传输层安全性(TLS)[RFC2818]。

  

端口组件是可选的; " ws"的默认值是80号港口   " wss"的默认值是443号港口。

那我怎么能让端口80和443工作呢? 感谢。

修改:这是wss的第一行:

netstat

我想这意味着我无法使用端口80,对吗?

2 个答案:

答案 0 :(得分:1)

通常,此类问题意味着以下之一:

  1. 有些东西已经在监听这些端口;端口绑定不能由多个进程共享。
  2. 您可能需要升级的权限,并且无权在这些端口上打开侦听器(通常会保留较低范围的端口)。
  3. 要查看这是否是第一个问题,请尝试使用netstat查看您拥有听众的端口:

    netstat -a -p TCP -o -n
    

    如果这是第二个问题,您可能需要调整运行服务器的方式,以便它具有适当的权限。

    可能有一种解决方法(我没有尝试过)在Windows下启用端口共享:

    https://msdn.microsoft.com/en-us/library/ms733925(v=vs.110).aspx

    ...但是这种设置很难预测行为。另一个选择是在IIS中设置一个代理(我假设它正在占用你的端口80)。

答案 1 :(得分:0)

此答案于2015年11月20日美国东部时间下午2点修订。

我发现了你的问题,因为它在我的Windows 10笔记本电脑上安装和配置XAMPP的设置过程中与我自己的问题类似。

(我将在下面详细解释我的具体情况,但在此之前我会对你的问题做一个非常快速的总结回答。)

我以管理员身份运行XAMPP,右键单击并选择该选项。 港口问题似乎消失了。 现在我可以通过从任务栏上的固定图标左键单击它而无需指定管理员来正常打开它。 后一个结果是在24小时内重新启动计算机几次后发生的。 希望我确切地知道改变了什么以及它是如何工作的,但就我所见,它现在已经完美地运作了。

我在2015年11月17日的XAMPP控制面板中收到了一些错误。 这些错误表示类似于以下内容:

“无法打开过程PID 4416” “端口80阻塞” “港口443被封锁” “你没有以管理员身份运行”

另外,我应该提一下,我正在完成第二章,设置开发服务器中的步骤,在O'Reilly出版的教科书第4版学习PHP,MySQL和& JavaScript使用jQuery,CSS和& Robin Nixon的HTML5。

我还发现一个命令提示“看”框已打开,我不知道该怎么办,所以我后来关闭它。

但是,要重新开始,特别重要的是我设置服务器并以尽可能类似于教科书说明的方式运行它,因此更改默认端口号似乎不是很好我的选择,因为我不确定如何改变一个东西的端口号,例如主端口,可能会影响其他端口,以及其他东西。

我也对使用各种方法进行搜索的其他一些建议感到有些困惑,以确定其他“事物”可能会中断我的XAMMP尝试使用的端口,akak我的Apache服务器。

实际上,似乎Apache是​​PID 4416的源,并且没有任何东西正在使用端口80或端口443。我还检查了端口3306是否被使用,因为在教科书中提到它将是MySQL的默认端口,并且它没有被其他任何东西使用。

我通过转到“任务管理器”检查这些PID,然后转到“详细信息”,然后转到“PID”。

然后,在我的Windows 10笔记本电脑中,我关闭了所有打开的窗户,甚至是XAMMP控制面板。

然后,我将XAMMP键入“搜索Windows”栏。

当XAMMP出现时,我右键单击它并选择以管理员身份运行它。

当使用此方法打开控制面板时,我在XAMMP的控制面板中未收到任何错误消息。

但是,当我将XAMMP固定到我的任务栏并尝试以正常方式打开它时(左键单击打开)我收到了很多错误。

但是,当我右键单击任务栏上固定的XAMMP图标,然后在弹出单词XAMMP时再次右键单击,然后选择“以管理员身份运行”时,它似乎没有错误。

这是一种解决方案。

我认为它可能对某些人有帮助,但不是全部。

我希望有助于揭示类似的问题。

我将努力完全解决这个问题。

在这种特殊情况下,我需要找到一种方法来确保XAMMP在打开时自动以管理员身份运行,并且必须进行一些我尚未发现的调整。

我希望这对别人有帮助! :)

我的大部分知识都基于HTML5和CSS3以及搜索引擎优化,因此我正在努力了解有关服务器端和动态/交互式脚本的更多信息。

P.S。在这个初始问题的24小时内,在我的笔记本电脑重新启动几次后,我能够以正常的方式打开XAMPP,只需左键单击我固定到任务栏的图标。

我希望这也有帮助。 :)

度过美好的一天。