赞
踩
import VueNativeSock from 'vue-native-websocket';
Vue.use(VueNativeSock, 'ws://localhost:8080', {
reconnection: true, // 是否自动重连
reconnectionAttempts: 5, // 重连尝试次数
reconnectionDelay: 3000, // 重连延迟时间(毫秒)
});
<template> <!-- websocketceshi --> <div class="layout"> <div class="msgBody">{{ msg }}</div> <input v-model="sendMsg" style="width:200px;height:30px;margin-top:20px"/> <button @click="sendMessage" style="width:100px;height:30px;">发送</button> <button @click="close" style="width:100px;height:30px;">断开链接</button> <button @click="init" style="width:100px;height:30px;">建立链接</button> </div> </template> <script> export default { name: "LayOut", data() { return { msg: "", sendMsg: "", //后台的地址,只需要动localhost:8001部分,改成你后端的地址。我自己电脑上本地开的就直接用本地的了。 //后面webSocket是后台设定的接口地址,admin是你这个前台的识别码id。用于区分,比如你多个地方链接后台,后台推送数据的时候需要根据这个id不同,给对应的人推送,不然就推送到所有建立链接的网页上了 path: "ws://localhost:8001/webSocket/admin", //存websocket实例化的 socket: "", }; }, methods: { //用于前台发送数据到后台,调用websocket中的send方法把数据发过去。 sendMessage() { this.socket.send(this.sendMsg); }, //初始化建立前后台链接 init() { if (typeof WebSocket === "undefined") { alert("您的浏览器不支持socket"); } else { // 实例化socket this.socket = new WebSocket(this.path); // 监听socket连接 this.socket.onopen = this.open; // 监听socket错误信息 this.socket.onerror = this.error; // 监听socket消息 this.socket.onmessage = this.getMessage; this.socket.onclose = this.close; } }, //链接成功时的回调函数 open() { console.log("socket连接成功"); }, //链接错误时的回调 error(err) { console.log("连接错误" + err); }, //后台消息推送过来,接收的函数,参数为后台推过来的数据。 getMessage(msg) { this.msg = msg.data; }, //链接关闭的回调 close(event) { //socket是链接的实例,close就是关闭链接 this.socket.close() console.log("断开链接成功"); }, }, created() { //开局初始化建立链接 this.init(); }, }; </script> <style scoped> .layout { position: relative; width: 100%; height: 100%; } .msgBody { width: 500px; height: 300px; border: 1px solid rgb(95, 79, 79); } </style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。