【问题标题】:Websocket port problem because already in use?Websocket端口问题,因为已经在使用?
【发布时间】:2011-07-08 02:29:14
【问题描述】:

根据 IANA 的专家建议,WebSocket 协议默认使用端口 80 进行常规 WebSocket 连接。

当 Apache 服务器已经在监听端口 80 时,如何让我的 websocket 监听端口?

当我的 WebSocket 使用端口 12345 时,我让它工作,但我不想向所有人开放该端口并且 IANA 推荐端口 80...但我不知道如何使它与该端口一起工作?

想法 #1

我已阅读 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 做类似的事情......你的想法是什么?

【问题讨论】:

    标签: php html websocket


    【解决方案1】:

    你没有。在我所知道的每个操作系统中,规则是一个进程,一个端口。这是有道理的。如果你有两个进程监听同一个端口,那么谁说应该由哪个进程处理呢?您必须在该机器上公开一些其他端口。

    【讨论】:

    • 如果 IANA 知道端口 80 将用于网络服务器,为什么还要推荐它?
    • IANA 希望您运行一个支持 websocket 的网络服务器以及正常的 HTTP 请求。不过,据我所知,这些还不存在,所以......
    • 查看wikipedia 的主题。我特别注意到了这句话,ordinary TCP connections to ports other than 80 are frequently blocked by administrators。这就是为什么大多数人都想使用 80 而你却不愿意的一个很好的理由。
    • 此时我也想使用一个不会被阻塞的端口。这就是为什么我正在寻找一种方法来挂钩端口 80...
    • 嗯,端口 81 通常用作 80 的后备端口。您也许可以通过那个端口。
    【解决方案2】:

    websocket 协议使用端口 80 (HTTP) 或 443 (HTTPS)。我们所做的是为我们的网络服务器使用端口 80,为 websocket 使用端口 443。这样可以防止冲突,但仍然遵循标准。

    【讨论】:

      【解决方案3】:

      你不能。端口号标识网络接口的单个​​端点是套接字库的基本设计原则。如果 Apache 或任何其他程序具有端口 80,则它属于该程序并且仅属于该程序。

      想一想,如果您以某种方式与 Apache“共享”端口 80,我该如何选择将消息发送到哪个进程?

      可能有一个进程在一个网络接口上侦听(例如 Apache 使用您的以太网 LAN 的端口 80),而另一个进程在另一个接口上使用相同的端口号(例如在您的无线 LAN 上使用端口 80 的代理服务器)。

      【讨论】:

        【解决方案4】:

        我已阅读 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 做类似的事情......你的想法是什么?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-22
          • 2018-02-11
          • 2015-06-03
          • 1970-01-01
          • 2017-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多