Надеюсь, вы можете помочь.
Я новичок в 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"
]
}