解决vue问题WebSocketClient.js?5586:16 WebSocket connection to ‘ws://x.x.x.60:8081/ws‘ failed

2023-05-16

创建一个新的项目的时候,使用vue-cli创建。

安装vue-cli

npm install -g @vue/cli

vue-cli文档

创建好之后,运行npm run serve,会启动一个基于express的服务器,就可以热重载代码了,不会手动刷新去查看修改后的代码,很方便。

原理是在运行vue前端代码的时候,服务器还会运行一个websocketClient,与服务器通信。如果检查到代码有修改,就会刷新页面。 如果websocket通信有问题是不会正常进行热重载的。

因为我是直接在测试服务器上做修改,查看的。但是这里有一个问题,在服务器上,vue-cli-servece 不能正常检测到公网ip,而是直接使用了局域网的ip。这就导致ws的域名是内网ip,websocket通信失败。得到这样的错误提示:WebSocketClient.js?5586:16 WebSocket connection to 'ws://x.x.x.60:8080/ws' failed:

网上搜索了很久,没有看到相关的配置要怎么改这个ws的ip地址。但是其中有一篇文件给了提示,可以查看vue-cli-server的原代码,直接修改模块的代码。我没有找到vue-cli-server的代码,但是找到了webpack-dev-server的代码,在node_moudles目录下。  其中lib/options.json 里写了各个配置项的详细信息。 在其中也找到了对应的文档链接地址:  DevServer | webpackwebpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.https://webpack.js.org/configuration/dev-server/#devserverclient

那么这个就简单了,直接修改vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  devServer: {
      host: '0.0.0.0',
    // https:true,
      port: 6103,
      client: {
        webSocketURL: 'ws://0.0.0.0:6103/ws',
      },
      headers: {
        'Access-Control-Allow-Origin': '*',
      }
  },
  
  transpileDependencies: true
})

其中关键的就是client配置项。修改后,websocketClient可以正常使用公网ip发起通信。 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决vue问题WebSocketClient.js?5586:16 WebSocket connection to ‘ws://x.x.x.60:8081/ws‘ failed 的相关文章

  • WebSocket 无法与 DNS 配合使用

    我有一个网络应用程序 我正在使用 websockets 我在使用 ws myDomain com 作为 websocket 服务器的地址时遇到问题 这个问题很奇怪 因为我使用许多 PC 测试了连接 似乎这适用于大约 1 5 的 PC 当我将
  • 从 websocket 发送数据到 socket.io

    我使用 websocket 接口连接到 websocket 服务器 如果我想将通过 websocket 接口从 websocket 服务器接收到的数据发送到通过 http 服务器连接到我的客户端 我应该使用 socket io 吗 所以最后
  • http://localhost:8080 未重定向到 opensso 登录页面

    我的 Liferay Tomcat 服务器在端口 8080 上运行 当我尝试通过输入 url 从服务器访问应用程序时http localhost 8080 它没有重定向到登录页面 而是给我错误 The Connection to abc x
  • 使用嵌入qt的mysql?

    我正在尝试使用嵌入 QT 的 mysql 我已经有一个与 mysqld 链接的 Qt mysql 插件 该插件可以很好地加载嵌入式数据库 但 QT 没有简单的方法来设置 dataDir 等嵌入式选项 我在这里看到 http doc qt i
  • WebCore::UserGestureIndicator::processingUserGesture 中的 EXC_BAD_ACCESS (SIGSEGV)

    我有一个使用 UIWebView 和 HTML5 websockets 构建的 iOS 应用程序 该应用程序经历了看似随机的崩溃 它发生在用户与其交互时以及在用户和应用程序之间没有发生交互的寿命测试期间 崩溃日志都有以下内容 Excepti
  • Python服务器“通常只允许每个套接字地址使用一次”

    我正在尝试用 python 创建一个非常基本的服务器 它侦听端口 当客户端尝试连接时创建 TCP 连接 接收数据 发回某些内容 然后再次侦听 并无限期地重复该过程 这是我到目前为止所拥有的 from socket import server
  • 有没有适用于 IE 的 websocket 插件?

    有没有适用于 IE 的插件 我可以在 IE 7 8 9 中使用 Websockets 我还没找到 socket io 使用的后备方案之一是 flash gimite web socket js https github com gimite
  • 使用 Google App Engine 向防火墙后面的设备发起消息

    我想使用 Google App Engine 向位于防火墙 路由器 NAT 后面的设备发起 http 流量 这些设备将接收来自 GAE 的命令 我可以让设备轮询 GAE 来查找新消息 但这会占用大量流量 或者 我可以尝试永久保持打开连接 但
  • 开放式 WebSocket 连接存在哪些安全问题?

    我正在构建一个使用 websockets 的应用程序 我只允许经过身份验证的用户在登录并被授予会话 ID 后打开与服务器的 Websocket 连接 一旦我与经过身份验证的用户打开了 Websocket 连接 当前 页面 就会保存打开的 W
  • 立即检测客户端与服务器套接字的断开连接

    如何检测客户端已与服务器断开连接 我的代码中有以下代码AcceptCallBack method static Socket handler null public static void AcceptCallback IAsyncResu
  • 使用 Webpack 代理创建 React 应用程序中的 WebSockets

    我使用版本 3 1 2 2019 年 9 月 19 日 中的 Create React App 创建了我的 React 应用程序 我试图为 Web Socket 请求配置代理 但似乎当我使用代理时 未建立连接 我用过THIS https g
  • 天文台服务器启动失败 - 无法创建套接字服务器

    我正在为自己构建一些内部工具 以使用我设置的一些模板以及可以在应用程序之间共享的一些附加功能来生成 Flutter 应用程序 目前 代码可以编译 构建并部署 但它会卡在第一个视图 空白屏幕 上 并在失败之 前重试启动 Observatory
  • 如何在单独的文件中使用 FastAPI Depends 作为端点/路由?

    我在单独的文件中定义了一个 Websocket 端点 例如 from starlette endpoints import WebSocketEndpoint from connection service import Connectio
  • 流媒体性能 - Canvas 与

    我正在开发一个应用程序 需要通过 webSocket 连接以每秒至少 30 帧的速度持续传输图像 我遇到了一些性能问题 并希望尽我所能进行优化 我想知道使用不断更新的图像之间的性能差异是什么 就像这样 img src someDynamic
  • 哪些浏览器支持 HTML5 WebSocket API?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我将开发一个在浏览器中运行的即时消息应用程序 哪些浏览器支持WebSocket API
  • 将 Websocket 消息发送到 Go 中的特定通道(使用 Gorilla)

    我对 Go 很陌生 并且发现自己使用套接字作为我的第一个项目 这是一个多余的问题 但我无法理解如何将 websocket 更新发送到 Go 中的特定通道 使用 Gorilla 我在用此链接中的代码示例 https github com go
  • 覆盖 Autobahn/Twisted WebsocketClientProtocol 类

    我想重写我的 WebSocketClientFactory 类以允许传入数据填充作业队列 这是我正在尝试的连接代码 factory WebSocketClientFactory ws localhost 7096 job queue Que
  • C 代码中的握手 WebSocket

    我是 html5 及其 websocket 的新手 现在我一直在尝试用 c 制作自己的 websocket 服务器但是 这对我来说很难 我只想从 C 服务器发送 hello world 到 html 客户端 但是 我在握手方面遇到了麻烦 o
  • 如何使用 JavaScript 大致计算网站的连接速度?

    如何使用 JavaScript 大致计算网站的连接速度 我想创建一个像这样的javascript小部件 它将计算打开当前打开页面的速度 我想问是否可以仅使用 javascript 来完成此操作以及想法是什么 Update 请注意 页面大小始
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho

随机推荐