<template> <div class="webSocket-container"> <el-row :gutter="20"> <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> <el-alert type="success" :closable="false"> webSocket连接{{ status }}! </el-alert> <br /> <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form-item label="地址"> <el-input v-model="url" disabled></el-input> </el-form-item> <el-form-item label="消息" prop="message"> <el-input v-model="form.message"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submit">发送消息</el-button> </el-form-item> <el-form-item label="返回信息汇总"> {{ data }} </el-form-item> </el-form> </el-col> </el-row> </div> </template> <script> export default { name: 'WebSocket', components: {}, data() { return { url: 'ws://123.207.136.134:9010/ajaxchattest', webSocket: null, data: [], status: '', form: { message: null }, rules: { message: [{ required: true, message: '请输入消息', trigger: 'blur' }], }, } }, created() { this.init() }, destroyed() { this.webSocket.close() }, methods: { submit() { this.$refs['form'].validate((valid) => { if (valid) { this.send(this.form.message) } else { return false } }) }, init() { const wsuri = this.url this.webSocket = new WebSocket(wsuri) this.webSocket.onmessage = this.onmessage this.webSocket.onopen = this.onopen this.webSocket.onerror = this.onerror this.webSocket.onclose = this.onclose }, onopen() { this.status = '成功' }, onerror() { this.status = '失败' this.initWebSocket() }, onmessage({ data }) { //截掉测试webSocket地址广告 this.data.push(data.substring(0, data.length - 66)) }, send(Data) { this.webSocket.send(Data) }, onclose(e) { this.status = '断开' }, }, } </script>