超详细--vue3中使用socket.io-client + nodejs使用socket.io 实现实时通信

Vue中

第一步:安装插件
// 注意:客户端和服务端版本一定要兼容,尽量一样
// 我的 nodejs 和 vue 中都是 4.5.4 版本
npm i socket.io-client -S 
第二步:组件中引入使用
<template>
  <div>
    <el-button @click="handleEmit">发送</el-button>
  </div>
</template>
<script setup lang='ts'>
import { io } from "socket.io-client";

const socket = io('http://localhost:6789', {
  autoConnect: true,   // 自动连接     
})

const handleEmit = () => {
  // 向后台发送信息, response:响应信息
  socket.emit('chatMessage', 'test-value', (response: any) => {
    console.log(response, '发送消息,接收发送成功响应信息');
  });
}
// 实时接收后台返回的数据
socket.on('chat message', function(msg) {
  console.log('接收消息', msg);
});

</script>

nodejs中

第一步:安装插件
// 4.5.4 版本
npm i socket.io --save   
npm i express --save
第二步:在文件中引入使用
const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server, {
  cors: {
    origin: ['http://localhost:8999']  // 配置客户端可跨域地址
  }
});
io.on('connection', (socket) => {
  console.log('接收到客户端请求');
  socket.on('chatMessage', (msg, callback) => {
    console.log('客户端请求信息', msg);
    callback('你请求成功了')
    io.emit('chat message', {
      status: 200,
      data: 'result'
    });
  });
})

server.listen(6789, () => {
  console.log('listening on *:6789');
});
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@前端小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值