欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3 使用socket的完整代碼

 更新時間:2024年03月04日 10:06:15   作者:就是個名稱  
這篇文章主要介紹了vue3 使用socket的完整代碼,包括vue3客戶端和服務端的實例講解,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

Vue3 客戶端 

首先我們下載依賴 socket.io-client 

npm install socket.io-client --save

socket.js

import io from 'socket.io-client'
// 鏈接 服務端
const socket = io('http://localhost:3002', {
    query: {},
    transports: ['websocket', 'polling'],
})
export default socket

然后再組件中引入

import { defineComponent, onMounted, computed, ref } from "vue";
import socket from "@/utils/socket.js";
export default defineComponent({
    name: "operation",
    setup() {
        onMounted(() => {
            // socket.connected = true; // 默認false, 在和java調(diào)試中,需要打開鏈接 值變?yōu)閠rue
            socket.on("connect", () => {
                console.log("socketio-connect");
            });
        });
    }
})

然后我們啟動服務  前后臺都要起,這時候我們看到 控制臺和 服務端都有打印結果,就說明連接成功了。

 服務端 

配置服務端 socket  server.js (我這里是用node寫的, java同理)

如果使用 express  需要在安裝下 express 

npm install express --seve
npm install socket.io --save

server.js 服務端 

const express = require('express')
let fs = require('fs')
const app = express()
let port = 3002
    // 讀取文件
const server = app.listen(port, () => {
console.log('成功啟動express服務,端口號是' + port)
    })
//引入socket.io傳入服務器對象 讓socket.io注入到web網(wǎng)頁服務
const io = require('socket.io')(server);
io.on('connection', function(socket) {
    console.log('初始化');
    // 接受 客戶端 message事件
    socket.on("message", function (msg) {
            // 服務端推送客戶端 客戶端也要用 socket.on("message",(data)=>{}) 接收
            io.emit("message", msg) //服務器通過廣播將新用戶發(fā)送給全體群聊成員
    })
        //監(jiān)聽log事件
    socket.on("log", function (msg) {
        // 服務端推送客戶端
        io.emit("log", msg) //服務器通過廣播將新用戶發(fā)送給全體群聊成員
    })
});

然后我們就可以實現(xiàn)socket 通訊了

完整代碼

server,js

const express = require('express')
const app = express()
let port = 3002
const server = app.listen(port, () => {
        console.log('成功啟動express服務,端口號是' + port)
    })
    //引入socket.io傳入服務器對象 讓socket.io注入到web網(wǎng)頁服務
const io = require('socket.io')(server);
let indexSate = 0
let timer = null
io.on('connection', function(socket) {
    console.log('初始化');
    // 初始化
    indexSate = 0
    clearTimeout(timer)
    timer = null
    socket.on("start", function(msg) {
        console.log(msg)
        timer = setInterval(() => {
            io.emit('message', indexSate);
            indexSate++
        }, 1000)
    })
    socket.on("stop", function(msg) {
        console.log(msg)
        clearTimeout(timer)
        timer = null
    })
});

socket.js

import io from 'socket.io-client'
const socket = io('http://localhost:3002', {
    query: {},
    transports: ['websocket', 'polling'],
})
export default socket

cheshi.vue

<template>
    <div>
        <el-button size="small" @click="start" type="primary">開始</el-button>
        <el-button size="small" @click="stop" type="primary">暫停</el-button>
        <div></div>
    </div>
</template>
<script>
import { defineComponent, onMounted, computed, ref } from "vue";
import socket from "@/utils/socket.js";
export default defineComponent({
    name: "operation",
    setup() {
        // socket.connected = true; // 默認false, 在和java調(diào)試中,需要打開鏈接 值變?yōu)閠rue
        onMounted(() => {
            socket.on("connect", () => {
                console.log("socketio-connect");
            });
        });
        socket.on("message", (data) => {
            console.log(data);
        });
        const start = () => {
            socket.emit("start", "開始");
        };
        const stop = () => {
            socket.emit("stop", "暫停");
        };
        return {
            start,
            stop,
        };
    },
});
</script>
<style lang="less" scoped>
</style>

結果打印 

到此這篇關于vue3 使用socket的文章就介紹到這了,更多相關vue3 使用socket內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue3編譯報錯ESLint:defineProps is not defined no-undef的問題

    vue3編譯報錯ESLint:defineProps is not defined&nbs

    這篇文章主要介紹了vue3編譯報錯ESLint:defineProps is not defined no-undef的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue.js每天必學之指令系統(tǒng)與自定義指令

    Vue.js每天必學之指令系統(tǒng)與自定義指令

    Vue.js每天必學之指令系統(tǒng)與自定義指令,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue實現(xiàn)勻速輪播效果

    vue實現(xiàn)勻速輪播效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)勻速輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • vue監(jiān)聽頁面上的報錯信息

    vue監(jiān)聽頁面上的報錯信息

    這篇文章主要介紹了vue監(jiān)聽頁面上的報錯信息,window.onerror和window.addEventListener(‘error‘)的區(qū)別,需要的朋友可以參考下
    2023-10-10
  • webstorm提示?@路徑?Module?is?not?installed的問題

    webstorm提示?@路徑?Module?is?not?installed的問題

    這篇文章主要介紹了webstorm提示?@路徑?Module?is?not?installed的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • antd vue 刷新保留當前頁面路由,保留選中菜單,保留menu選中操作

    antd vue 刷新保留當前頁面路由,保留選中菜單,保留menu選中操作

    這篇文章主要介紹了antd vue 刷新保留當前頁面路由,保留選中菜單,保留menu選中操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • VueJs組件prop驗證簡單介紹

    VueJs組件prop驗證簡單介紹

    今天看了vuejs的組件,看到了prop組件,主要作用是在傳入數(shù)據(jù)的時候?qū)魅氲闹底雠袛?,今天小編通過一個小例子給大家分享VueJs組件prop驗證簡單理解,感興趣的朋友一起看看吧
    2017-09-09
  • Vue關于對象直接賦值的坑及解決

    Vue關于對象直接賦值的坑及解決

    這篇文章主要介紹了Vue關于對象直接賦值的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue 實現(xiàn) rem 布局或vw 布局的方法

    vue 實現(xiàn) rem 布局或vw 布局的方法

    這篇文章主要介紹了vue 實現(xiàn) rem 布局的 或者 vw 布局的方法,本文給提供多種方法,需要的朋友可以參考下
    2019-11-11
  • vue 中監(jiān)聽生命周期事件的操作方式

    vue 中監(jiān)聽生命周期事件的操作方式

    vue2 提供了一些生命周期事件的方式,在組件銷毀后觸發(fā)一個事件,父組件可監(jiān)聽到該事件,然后執(zhí)行某些操作,這篇文章主要介紹了vue 中監(jiān)聽生命周期事件的操作方式,需要的朋友可以參考下
    2024-06-06

最新評論