प्रौद्योगिकी साझेदारी

vue2 WebSocket इत्यस्य कार्यान्वयनार्थं Socket.io इत्यस्य उपयोगं करोति

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

एनपीएम इत्यस्य उपयोगः : १.

आधिकारिकजालस्थलम् : १.https://socket.io/zh-CN/docs/v4/ इति ग्रन्थः ।
क्लायन्ट् एपिआइ : १.https://socket.io/zh-CN/docs/v4/ग्राहक-api/#सॉकेट

1. Socket.io क्लायन्ट् संस्थापयन्तु

प्रथमं, स्वस्य Vue परियोजनायां socket.io-client संस्थापयन्तु:

npm install socket.io-client
  • 1
2. Vue घटकेषु Socket.io इत्यस्य उपयोगं कुर्वन्तु

स्वस्य Vue घटके भवान् Socket.io इत्यस्य उपयोगं एतादृशं कर्तुं शक्नोति ।

import io from 'socket.io-client';
// import { io } from "socket.io-client";

export default {
  data() {
    return {
      socket: null
    };
  },
  created() {
    this.init()
  },
  methods: {
    init(){
        // 1. 连接到服务器
        // 来自不同域,请确保在服务器上启用 跨域资源共享 (CORS)。
        this.socket = io("https://server-domain.com");
        // 来自同域
        // this.socket = io();
        
        console.log(this.socket.id); // undefined
        
        // 连接服务器
        this.socket.on('connect', () => {
            console.log('已连接到服务器',this.socket.id);// "G5p5..."
        });
    
        // 2. 监听来自服务器的消息, 服务的的事件名 'news'
        this.socket.on('news', (data) => {
          console.log(data);
        });
        
        // 5. 断开连接时自动重连
        // this.socket.on("disconnect", () => {
        //   this.socket.connect();
        // });
    },
    // 发送消息按钮
    sendMessage(message) {
        // 检查连接状态
        if (this.socket.connected) {
            // 如果已连接,则直接发送任务信号
            let post_data = {name: 'test'}
            
            // 3. 发送消息到服务器, 'message' 客户端事件名
            this.socket.emit('message', post_data, (response) => {
                console.log(response); // "got it"
            });
        } else {
            // 如果断开连接,则尝试重新连接
            this.socket.connect();
            
            // 监听连接成功事件
            this.socket.on('connect', function() {
                // 连接成功后发送任务信号
                let post_data = {name: 'test'}
                
                // 3. 发送消息到服务器, 'message' 客户端事件名
                this.socket.emit('message', post_data, (response) => {
                    console.log(response); // "got it"
                });
            });
        }
    }
  },
  beforeDestroy() {
    // 4. 断开连接
    if (this.socket) {
        this.socket.disconnect();
    }
  }
};

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • created() हुक् सर्वरेण सह सम्बद्ध्य सन्देशश्रोतृणां स्थापनार्थं च उपयुज्यते ।
  • sendMessage() मेथड् इत्यस्य उपयोगः सर्वरं प्रति सन्देशान् प्रेषयितुं भवति ।
  • beforeDestroy() हुक् घटकस्य विनाशात् पूर्वं विच्छेदं करोति ।