【问题标题】:WSS with proxy using port 443 browser client connect to websocket server on port 6001带有代理的 WSS 使用端口 443 浏览器客户端连接到端口 6001 上的 websocket 服务器
【发布时间】:2021-10-18 11:08:11
【问题描述】:

我在浏览器客户端使用“laravel websocket if beyondcode”在端口 6001 上为 WebSocket 服务。但是当我将浏览器客户端请求从使用端口 80/443 更改时,它没有连接到 WebSocket 服务器。

浏览器客户端请求网址:

wss://test.example.com:443/app/ABCDEFG?protocol=7&client=js&version=7.0.3&flash=false

标签中添加的代码

SSLProxyEngine on
ProxyPreserveHost On
ProxyPass /app wss://test.example.com:6001/$1
ProxyPassReverse /app wss://test.example.com:6001/$1
ProxyRequests off

谁能帮我解决这个问题?

【问题讨论】:

    标签: php websocket laravel-8


    【解决方案1】:

    这是在我的 centos 中工作的最终工作代码。

    标签关闭之前添加以下代码

    <IfModule mod_proxy.c>
        ProxyRequests Off
        SSLProxyEngine On
    
        # Ensure WebSocket protocol is forwarded correctly
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^Websocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule /app/(.*) wss://%{HTTP:HOST}:6001/app/$1 [P]
    </IfModule>
    

    下面是我的推杆设置

    window.pusher = new Pusher(process.env.MIX_PUSHER_APP_KEY, {
        cluster: process.env.MIX_PUSHER_APP_CLUSTER,
        encrypted: false,
        wsHost: window.location.hostname,
        // commented this because it should be use default port 80/443
        //wsPort: process.env.MIX_LARAVEL_WEBSOCKETS_PORT,
        //wssPort:process.env.MIX_LARAVEL_WEBSOCKETS_PORT,
        enabledTransports: ['ws', 'wss'],
        forceTLS: true,
    });
    

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多