vue-socket.io踩坑总结(跨域问题,数据接收问题,koa无法connection问题,部分细节问题)

本文记录了在vue-cli3项目中使用vue-socket.io与koa2结合搭建socket服务时遇到的跨域、数据接收及通信时机等问题,详细介绍了如何解决这些问题,包括更改socket.io通信方式为websocket、使用vue devServer的proxy处理跨域,以及解决vue组件中数据接收延迟问题。
摘要由CSDN通过智能技术生成

最近项目上要用到socket服务,捣鼓了一天,踩了很多坑,记录一下。

项目架构
  • koa2 + vue/cli3

先看一下网上有没有现成的库,搜索一下:vue socket,发现有一个vue-socket.io库,还蛮多人用的,跟着网上的写法走。

socket.io搭建使用

koa2增加socket.io
  • npm i socket.io -S
  • koa2使用的中间件模式,将socket和http共用一个端口
// app.js
const Koa = require('koa')
const app = new Koa()

module.exports = app

// www
var app = require('../app')
var http = require('http')
var server = http.createServer(app.callback())

const SocketIO = require('socket.io')
const io = SocketIO(server)
  • 发送,接收消息
io.on('connection', socket => {
   
    console.log('连接成功')
    // 发送
    socket.emit('test1', {
   'test': 1})
    // 接收
    socket.on('test2', data => {
   
      console.log('收到', data)
    })
  })
vue/cli3增加socket
  • npm i vue-socket.io -S
  • 按照网上的方法在main.js引入
import SocketIO from 'vue-socket.io'
Vue.use(new SocketIO({
   
  debug: true,
  connection:'http://localhost:3000/'
  }))
  • 在组件中使用
export default {
   
 mounted () {
   
   this.$socket
  • 20
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值