Почему мой браузер не ведет журнал консоли с помощью WebSockets в Vue? - PullRequest
0 голосов
/ 19 июня 2020

Надеюсь, вы можете помочь.
Я новичок в WebSockets, у меня есть простое приложение, работающее локально, и теперь я хотел попробовать настроить WS с помощью Vue, но не получаю ожидаемого поведения. Я постарался сделать код максимально лаконичным.

Я следовал этому руководству: https://tutorialedge.net/javascript/vuejs/vuejs-websocket-tutorial/

Цель:
Я пытаюсь установить sh простое соединение с WebSockets с Vue.

С приведенным ниже кодом я запускаю npm run serve (см. Файл package.json), чтобы запустить приложение на http://localhost:8080/.

Проблема:
WebSockets подключается так, как я ожидал, но когда я запускаю sendMessage с помощью кнопки, оба браузера не ведут журнал консоли, чего я и ожидал.

Я пробовал изменить соединение WS на this.connection = new WebSocket("ws://localhost:8080"), но не повезло, оно никогда не подключается и остается в фазе подключения.

Я не получаю ошибок в консоли.

Не могли бы вы помочь мне понять, что я делаю не так?

Ваша помощь очень ценится.

Спасибо

Мо

Код ниже - мой root Vue.app файл.

<template>
  <div id="app">
    <button v-on:click="sendMessage">Send Message</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  components: {
    testComponent
  },
  data: function () {
    return {
      connection: null
    }
  },
  methods: {
    sendMessage: function (message) {
      this.connection.send(message)
    }
  },
  created: function () {
    console.log("Starting Connection to WebSockets Server.")
    this.connection = new WebSocket("wss://echo.websocket.org")

    this.connection.onopen = function (event) {
      console.log(event)
      console.log("Successfully connected to the WebSocket Server.")
    }

    this.connection.onmessage = function (event) {
      console.log(event)
    }
  }
}
</script>

Это мой package.json файл.

{
  "name": "vuejs-websocket-tutorial",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^2.6.11"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.4.0",
    "@vue/cli-plugin-eslint": "~4.4.0",
    "@vue/cli-service": "~4.4.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.6.11"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "rules": {}
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}
...