为了账号安全,请及时绑定邮箱和手机立即绑定

富文本中代码预览测试(MarkDown)

标签:
Html5
<template>
  <div>
    <el-input v-model="username" placeholder="用户"></el-input>
    <el-input v-model="content" placeholder="信息内容"></el-input>
    <button @click="send">发消息</button>
  </div>
</template>

<script>
export default {
  name: 'WebSocket',
  data () {
    return {
      username: 'vue',
      content: '',
      path: 'ws://localhost:9000/api/websocket/',
      socket: ''
    }
  },
  mounted () {
    // 初始化
    this.init()
  },
  methods: {
    // 生成随机字符
    createUniqueString() {
      const timestamp = +new Date() + ''
      const randomNum = parseInt((1 + Math.random()) * 65536) + ''
      return (+(randomNum + timestamp)).toString(32)
    },
    init: function () {
      if (typeof (WebSocket) === 'undefined') {
        alert('您的浏览器不支持socket')
      } else {
        this.username = this.createUniqueString()
        const wsUrl = this.path + this.username
        // 实例化socket
        this.socket = new WebSocket(wsUrl)
        // 监听socket连接
        this.socket.onopen = this.open
        // 监听socket错误信息
        this.socket.onerror = this.error
        // 监听socket消息
        this.socket.onmessage = this.getMessage
      }
    },
    open: function () {
      console.log('socket连接成功')
    },
    error: function () {
      console.log('连接错误')
    },
    getMessage: function (msg) {
      const result = msg.data
      const obj = JSON.parse(result)
      this.showMsg(obj)
      console.log(obj)
    },
    send: function () {
      var message = {
        username: this.username,
        content: this.content,
        to: 'all'
      }
      this.socket.send(JSON.stringify(message))
    },
    close: function () {
      console.log('socket已经关闭')
    },
    showMsg(data) {
      if (data.type === 1) {
        this.$confirm(data.message + ', 请尽快处理!', '警告', {
          confirmButtonText: '确定',
          showCancelButton: false, // 不显示取消按钮
          closeOnClickModal: false, // 是否可通过点击遮罩关闭 MessageBox
          // cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          // this.$message({
          //   type: 'success',
          //   message: '删除成功!'
          // })
        }).catch(() => {
          // this.$message({
          //   type: 'info',
          //   message: '已取消删除'
          // })
        })
      }
    }
  },
  unmounted () {
    // 销毁监听
    this.socket.onclose = this.close
  }
}
</script>

<style>

</style>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
0
获赞与收藏
0

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消