日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

socket.io跨域踩坑

發(fā)布時(shí)間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket.io跨域踩坑 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、koa結(jié)合socket.io

后端代碼:

// 引入依賴 const koa = require("koa"); // 初始化koa const app = new koa(); // 開啟 http var server = require("http").createServer(app.callback()); // 初始化 socket const io = require("socket.io")(server, { cors: true }); // 監(jiān)聽 io.on("connection", (socket) => {console.log("有人鏈接");//接收數(shù)據(jù)socket.on('send', function (data) {console.log(data);// 發(fā)送數(shù)據(jù)socket.emit('resend', {msg: `你好${data.msg}`,code: 200});}); }); server.listen(3000);

前端代碼:

<template><div class="hello"><input type="text" v-model="msg"><button @click="sendMsg">發(fā)送</button></div> </template><script> import io from 'socket.io-client' export default {name: 'HelloWorld',data () {return {msg: 'Welcome to Your Vue.js App'}},mounted () {const socket = io('ws://localhost:3000')this.socket = socketwindow.socket = socketsocket.on('connect', function () {console.log('連接建立成功了!')})socket.on('disconnect', function () {console.log('斷開連接了')})socket.on('resend', function (data) {console.log(data)})},methods: {sendMsg () {// 發(fā)送信息給服務(wù)端this.socket.emit('send', {msg: this.msg})}} } </script> <style scoped></style>


二、express 結(jié)合 socket.io

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http, { cors: true });app.get('/', function(req, res){res.send('<h1>你好web秀</h1>'); });io.on('connection',function(socket) {console.log("有人鏈接");//接收數(shù)據(jù)socket.on('send', function (data) {console.log(data);// 發(fā)送數(shù)據(jù)socket.emit('resend', {msg: `你好${data.msg}`,code: 200});}); });http.listen(3000, function(){console.log('listening on *:3000'); });

前端代碼:

<template><div class="hello"><input type="text" v-model="msg"><button @click="sendMsg">發(fā)送</button></div> </template><script> import io from 'socket.io-client' export default {name: 'HelloWorld',data () {return {msg: 'Welcome to Your Vue.js App'}},mounted () {const socket = io('ws://localhost:3000')this.socket = socketwindow.socket = socketsocket.on('connect', function () {console.log('連接建立成功了!')})socket.on('disconnect', function () {console.log('斷開連接了')})socket.on('resend', function (data) {console.log(data)})},methods: {sendMsg () {// 發(fā)送信息給服務(wù)端this.socket.emit('send', {msg: this.msg})}} } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped></style>



注意:
如果出現(xiàn)跨域報(bào)錯(cuò),可以參考以下解決方案:

  • 重裝socket.io-client
  • npm i socket.io-client --save
  • 在vue中使用
  • 總結(jié)

    以上是生活随笔為你收集整理的socket.io跨域踩坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。