websocket在vue中的使用步骤,以及实现聊天

发布于:2025-05-30 ⋅ 阅读:(24) ⋅ 点赞:(0)

一、WebSocket集成步骤

连接初始化
在Vue组件中创建WebSocket实例,建议在mounted生命周期中执行:

data() {
  return {
    socket: null,
    messages: []
  }
},
mounted() {
  this.socket = new WebSocket('wss://your-server-endpoint');
}

事件监听配置

连接成功‌:通过onopen处理认证或初始化操作:

this.socket.onopen = () => {
  console.log('WebSocket connected');
  this.socket.send(JSON.stringify({ type: 'auth', token: 'user-token' }));
};

消息接收‌:onmessage将数据存入Vue响应式数组

this.socket.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  this.messages.push(msg); // 自动触发视图更新
};

消息发送方法
封装发送逻辑,检查连接状态后发送数据

methods: {
  sendMessage() {
    if (this.socket.readyState === WebSocket.OPEN) {
      this.socket.send(JSON.stringify({
        content: this.inputText,
        sender: 'user123'
      }));
    }
  }
}

二、实时聊天实现流程

  1. 双向通信架构

    • 用户A发送消息 → 服务端通过WebSocket广播 → 用户B的onmessage触发更新17。
    • 服务端需维护连接池,按用户ID或群组路由消息18。
  2. 消息回显到界面

    •  ‌数据绑定‌:模板中通过v-for渲染messages数组56:

 

<div class="chat-list">
  <div v-for="(msg, index) in messages" :key="index">
    <strong>{{ msg.sender }}:</strong> {{ msg.content }}
  </div>
</div>

               2 自动滚动‌:在updated生命周期中滚动到最新消息位置

updated() {
  const container = this.$el.querySelector('.chat-list');
  container.scrollTop = container.scrollHeight;
}

 


网站公告

今日签到

点亮在社区的每一天
去签到