https网站通过nginx 代理到ws(http) websocket代理配置

JS

      // 创建 WebSocket 对象
    var socket = new WebSocket('wss://域名/ws');

    // 定义心跳间隔时间(秒)
    const HEARTBEAT_INTERVAL = 30; // 每 30 秒发送一次心跳

    // 心跳计数器
    let heartbeatCount = 0;

    // 定义心跳函数
    function sendHeartbeat() {
        heartbeatCount++;
        console.log(`Sending heartbeat ${heartbeatCount}`);
        socket.send('heartbeat');
    }

    // 连接建立后的回调
    socket.addEventListener('open', function (event) {
        console.log('WebSocket connection established.');

        // 开始发送心跳
        setInterval(sendHeartbeat, HEARTBEAT_INTERVAL * 1000);
    });

    // 当从服务器接收到消息时触发
    socket.addEventListener('message', function (event) {
        if (event.data === 'sms') {
            window.location.href = '/online.php?page=1';
        } else if (event.data === 'heartbeat') {
            // 如果服务器响应心跳,则重置计数器
            heartbeatCount = 0;
        }
    });

    // 连接关闭时的回调
    socket.addEventListener('close', function (event) {
        console.log('WebSocket connection closed.');
        window.location.href = '/online.php?page=1';
        // 清除心跳定时器
        clearInterval(sendHeartbeat);
    });

    // 发送数据到服务器
    //socket.send('Hello, Server!');

nginx 配置

     location /ws {
        proxy_pass http://127.0.0.1:8800; # 后端 WebSocket 服务的地址
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_connect_timeout 60s;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;
        proxy_cache_bypass $http_upgrade;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值