当前位置: 首页 > 知识库问答 >
问题:

wss://my.domain.com/sockjs/362/4q059yw7/websocket

莘睿
2023-03-14
Uncaught TypeError: a._qs.unescape is not a function

从。build/dist/bundle/programs/web.browser中的构建文件中

Request URL:https://my.domain.com/5a0c202b90aa3cc1c9414b703c4e1f343fb0dd4e.js?meteor_js_resource=true

以下websocket请求将保持挂起状态为101

wss://my.domain.com/sockjs/362/4q059yw7/websocket

我没有在流星上写任何代码来运行它到https,我试图通过Nginx处理。添加ssl证书后,从angular尝试通过wss://localhost/而不是ws://localhost:3000/连接到meteor

请在下面找到我的nginx文件。

events {    
}

http {
  server {
     listen 80;
     listen [::]:80 default_server ipv6only=on;
     server_name  my.domain.com;
     root   /client;
     index  index.html;

     location / {
        rewrite     ^ https://$server_name$request_uri? permanent;
     }
}

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

 server {
    # Enable HTTP/2
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
     server_name  my.domain.com;

     root   /client;
     index  index.html;
     ssl_certificate /etc/letsencrypt/live/my.domain.com/fullchain.pem; # managed by Certbot
     ssl_certificate_key /etc/letsencrypt/live/my.domain.com/privkey.pem; # managed by Certbot
     ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; # allow websockets
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location /api {
        proxy_pass http://localhost:3000;
    }

    location /uploadFile {
        proxy_pass http://localhost:3000;
    }

    error_page   500 502 503 504  /50x.html;
    location = /51x.html {
        root   /client;
    }
  }  
}

任何线索都将不胜感激。

共有1个答案

钮善
2023-03-14

我想通了我的问题。问题在Nginx的线下。

 proxy_pass http://localhost:3000;

我通过将其重定向到http://localhost:3000/websocket;和位置作为location/websocket来修复它

片段如下。

location /websocket {
   proxy_pass http://localhost:3000/websocket;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade; # allow websockets
   proxy_set_header Connection $connection_upgrade;
   proxy_set_header X-Forwarded-For $remote_addr;
}
 类似资料:
  • WSS

    温馨提示:该项目只部分代码开源,未开源部分请咨询作者后使用。 WSS(White Shark System)基于PMI®全球项目管理标准,专注于项目管理规范性、易用性、以及视觉效果。 主要功能:项目管理、任务管理、工时管理、工作日志管理、文档管理等。 WSS简单易用,即使不参考帮助文档,不参加使用培训,也能凭借直觉快速上手。   WSS支持PC/MAC桌面以及移动设备同时使用。 演示地址:http

  • 基于HTTP的angular客户端工作代码 现在我已经在我的web套接字服务器上实现了SSL,该服务器运行在单独的Spring Boot服务器上。和更新协议在服务器和客户端一样。ws到wss,http到HTTPS。 并尝试以下内容来添加SSL上下文

  • SockJS 是一个浏览器上运行的 JavaScript 库,如果浏览器不支持 WebSocket,该库可以模拟对 WebSocket 的支持,实现浏览器和 Web 服务器之间低延迟、全双工、跨域的通讯通道。 SockJS family: SockJS-client JavaScript client library SockJS-node Node.js server SockJS-erlang

  • SockJS-node is a Node.js server side counterpart of SockJS-client browser library written in CoffeeScript. To install sockjs-node run: npm install sockjs (If you see rbytes dependecy failing, don't wo

  • 我想做一只袜子。前端到vertx后端的js连接。 我最初的尝试如下所示: 这不起作用,因为我需要在创建EventBus时发送身份验证数据,即使是官方的sock。js文档指出这是不受支持的。显然,现在正在发送新的EventBus(“http://localhost:9090/eventbus“,数据)也不起作用。 https://github.com/sockjs/sockjs-node#autho

  • 问: Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端。 答: wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。 所以只需要在websocket协议的基础上开启SSL即可支持wss协议。 方法一 ,直接用Workerman开启SSL 准备工作: 1、Workerm