vue中WebSocket使用记录

直接上代码:

<template>
    <div class="chart">
        <div class="container">
            <el-input type="text" v-model="text" />
            <el-button @click="send">发送消息</el-button>
            
            
            <el-button @click="closeWebSocket()">关闭websocket连接</el-button>
            
            <div>{{ data }}</div>
        </div>
    </div>
</template>

<script>
import axios from 'axios';
import common from '../common/common.js';

export default {
    name: 'chart',
    data() {
        return {
            
            text: '',    ////发送内容
            data: '',    ////响应数据
            websocket: null,
        };
    },
    created() {
        this.apiUrl = common.apiUrl;      ////接口

        this.token = 'Token ' + localStorage.getItem('token');  ////
token

    },
    mounted() {
        if ('WebSocket' in window) {    ////打开时判断socket连接状态
            this.websocket = new WebSocket('ws://47.94.0.83:8889/ws/chants/zyf/');
            this.initWebSocket();
        } else {
            alert('当前浏览器不支持即时聊天,请升级浏览器或更换浏览器使用!!');
        }
    },
    beforeDestroy() {    ////关闭时断开socket连接
        this.onbeforeunload();
    },

    methods: {
        initWebSocket() {    ////初始化
            //连接错误
            this.websocket.onerror = this.setErrorMessage;

            // //连接成功
            this.websocket.onopen = this.setOnopenMessage;

            //收到消息的回调
            this.websocket.onmessage = this.setOnmessageMessage;

            //连接关闭的回调
            this.websocket.onclose = this.setOncloseMessage;

            //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
            window.onbeforeunload = this.onbeforeunload;
        },
        setErrorMessage() {
            this.data = 'WebSocket连接发生错误' + '   状态码:' + this.websocket.readyState;
        },
        setOnopenMessage() {
            this.data = 'WebSocket连接成功' + '   状态码:' + this.websocket.readyState;
        },
        setOnmessageMessage(event) {
            this.data = '服务端返回:' + event.data;
        },
        setOncloseMessage() {
            this.data = 'WebSocket连接关闭' + '   状态码:' + this.websocket.readyState;
        },
        onbeforeunload() {
            this.closeWebSocket();
        },

        //websocket发送消息
        send() {
            this.messages = {
                token:this.token,
                text:this.text,
            }
            
            this.websocket.send(this.text);
            // this.websocket.send(this.messages);
            this.text = '';
            // this.messages = {};
        },
        closeWebSocket() {
            this.websocket.close();
        }
    },

};
</script>

<style scoped>
.container {
    /* background: rgba(255,255,255,0); */
    border: 0;
}
.handle-box {
    border-bottom: 2px solid #999;
    padding-bottom: 10px;
}
.sheetcontent {
    margin-top: 10px;
    overflow: hidden;
    box-sizing: border-box;
}
.sheetlib {
    width: 20%;
    float: left;
    overflow: hidden;
    box-sizing: border-box;
}
.sheetlib:hover {
    transform: scale(1.03);
}
.sheetlist {
    margin: 5px;
    padding: 5px 0 0 0;
    background: #fff;
    border: 1px solid #eee;
    overflow: hidden;
    box-sizing: border-box;
}
.sheettitle {
    padding: 10px;
}
.sheetbtn {
    cursor: pointer;
    margin-top: 10px;
    border-top: 1px solid #eee;
}
.btnli {
    width: 33.333%;
    float: left;
    overflow: hidden;
    box-sizing: border-box;
    font-size: 14px;
    text-align: center;
    padding: 5px;
}

.li1 {
    color: #ffd700;
}
.li2 {
    color: #9f79ee;
}
.li3 {
    color: #cd3700;
}
.btnli {
    /* background: #B4EEB4; */
    border-right: 1px solid #eee;
}
.btnli:last-child {
    /* background: #CAE1FF; */
    border-right: 0;
}
</style>


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356