使用 express + vue 开发 socket.io 跨域踩坑

4 篇文章 0 订阅
2 篇文章 0 订阅
  1. 跨域问题
  • VUE插件配置: 安装 socket.io-client 解决。
    • 如果使用script引入,不需要考虑这个问题,如果使用 vue-socket.io 则需要使用此方法。
    • 原因:Socket.io不是Websocket,它只是将Websocket和轮询 (Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。也就是说,Websocket仅仅是 Socket.io实现实时通信的一个子集。因此Websocket客户端连接不上Socket.io服务端,当然Socket.io客户端也连接不上Websocket服务端。
import VueSocketIO from "vue-socket.io"
import ClientSocketIO from "socket.io-client"

Vue.use(
  new VueSocketIO({
    debug: true,
    connection: ClientSocketIO.connect("http://localhost:3000"),  // 关键配置
    options: { path: "/" }, //Optional options
  })
)


- 服务器配置
方法1:
const io = socket_io(server, {cors:true});

方法2:
const io = socket_io(server, {
    cors:{
       origin: "http://localhost:8082"
    }
});

方法3: **指定多个网址的时候,需要使用数组**。
const io = socket_io(server, {
    cors:{
       origin: ["http://localhost:8082","http://127.0.0.1:8082"]
    }
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值