• nginx websocket 反向代理过来


    之前写过。代码放在那里,我竟然没看。。。

    说下配置

    后端是 nest,使用的的 @nestjs/websockets 应该是 socket.io

    前端代码

    <script crossorigin="anonymous" integrity="sha384-nBK38bnVsoQvGdJGVtKno9hHFpl07bff81Db7PBpo7qN1KEA8b46Mm9dJSuf78bh" src="https://lib.baomitu.com/socket.io/2.3.0/socket.io.dev.js"></script>
    
    const test = io('ws://localhost:3021/wssocket').connect();
        test.emit('receiveMsg', 'socket2', { 'socket2': 'socket2' } );
    
        const socket1 = io('ws://localhost').connect(); 
        socket1.on('message', function(){
          console.log(arguments);
        });
        //断开事件
        socket1.on('disconnect', function () { // 这里监听 disconnect,就可以知道谁断开连接了
            console.log('断开连接: ' + socket1.id);
        });
    
    
        const wssocket = io('ws://localhost').connect(); 
        wssocket.on('message', function(){
          console.log(arguments);
        });
    
        $('#btn_send').click(()=>{
            wssocket.emit('receiveMsg', 'socket2', { 'socket2': 'socket2' } );
            socket1.emit('receiveMsg', 'socket2', { 'socket2': 'socket2' } );
        })

    接着看nginx 反向代理 因为是 socket.io.dev.js 所以代理那块必须修改,上代码

    #这段代码在http里面

    map $http_upgrade $connection_upgrade {
      default upgrade;
      '' close;
    }

    #这段代码在server 里面

    location /socket.io {
        #此处改为 socket.io 后端的 ip 和端口即可
        proxy_pass  http://localhost:3021;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
    }    

    此刻完成了

  • 相关阅读:
    [01] 异常的概念和处理
    [03] 节点流和处理流
    [02] 输入/输出流 和 字节/字符流
    [01] File类
    Apache的https协议配置
    Apache的虚拟主机配置
    Apahce的虚拟用户认证及server-status页
    Apache配置日志功能
    Apache脚本路径别名(CGI接口)
    Apache配置站点根目录、用户目录及页面访问属性
  • 原文地址:https://www.cnblogs.com/qkstart/p/13210048.html
Copyright © 2020-2023  润新知