根据IANA的专家建议,WebSocket协议默认使用端口80进行常规WebSocket连接。
当Apache服务器已经在监听此端口时,如何让我的websocket监听端口80?
当我的WebSocket使用端口12345时,我使它工作但我不想向所有人开放端口和IANA推荐端口80 ...但是我不知道如何使它适用于该端口?
我已经读过,对于Jabber服务器,您可以使用Apache来重定向呼叫。以下是this website的示例:
<VirtualHost *:80>
Servername yourdomain.com
DocumentRoot /var/www
AddDefaultCharset UTF-8
RewriteEngine On
RewriteRule ^/http-bind/ http://jabber.yourdomain.com:5280/http-bind/ [P]
</VirtualHost>
也许我可以用websocket做那样的事......你的想法是什么?
答案 0 :(得分:1)
你没有。在我所知道的每个操作系统中,规则是一个进程,一个端口。这是有道理的。如果你有两个进程监听同一个端口,那么谁应该说哪一个应该处理它?你必须暴露那台机器上的其他一些端口。
答案 1 :(得分:1)
websocket协议使用端口80(HTTP)或443(HTTPS)。我们所做的是使用端口80作为我们的网络服务器,使用端口443作为websocket。这可以防止冲突,但仍然遵循标准。
答案 2 :(得分:0)
你做不到。它是套接字库的基本设计原则,端口号标识网络接口的单个端点。如果Apache或任何其他程序具有端口80,那么它属于该程序而只属于该程序。
如果你以某种方式与Apache“共享”端口80,请考虑一下如何选择将消息发送到哪个进程?
可以让一个进程侦听一个网络接口(比如Apache使用端口80作为以太网LAN),另一个进程使用另一个接口上的相同端口号(比如使用无线局域网上的端口80的代理服务器)。
答案 3 :(得分:0)
我已经读过,对于Jabber服务器,您可以使用Apache来重定向呼叫。以下是this website的示例:
<VirtualHost *:80>
Servername yourdomain.com
DocumentRoot /var/www
AddDefaultCharset UTF-8
RewriteEngine On
RewriteRule ^/http-bind/ http://jabber.yourdomain.com:5280/http-bind/ [P]
</VirtualHost>
也许我可以用websocket做那样的事......你的想法是什么?