继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

Mr_XiMu
关注TA
已关注
手记 2
粉丝 0
获赞 0
<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>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP