86 lines
2.2 KiB
Vue
86 lines
2.2 KiB
Vue
|
|
<template>
|
|||
|
|
<div class="webSocket-container">
|
|||
|
|
<el-row :gutter="20">
|
|||
|
|
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
|
|||
|
|
<el-alert :closable="false" type="success">webSocket连接{{ status }}!</el-alert>
|
|||
|
|
<br />
|
|||
|
|
<el-form ref="form" label-width="100px" :model="form" :rules="rules">
|
|||
|
|
<el-form-item label="地址">
|
|||
|
|
<el-input v-model="url" disabled />
|
|||
|
|
</el-form-item>
|
|||
|
|
<el-form-item label="消息" prop="message">
|
|||
|
|
<el-input v-model="form.message" />
|
|||
|
|
</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>
|