当前位置: 首页 > article >正文

fastapi_socketio连接vue的socktio.client

环境

windows 11
python 3.11
fastapi 0.108.0
fastapi-socketio 0.0.10
vue2
“socket.io-client”: “^4.6.1”,
提示:如果遇到跨域问题自行解决

fastapi

使用fastapi-scoketio下的SocketManager, 可以看到接口解释如下:

在这里插入图片描述
所以默认配置是客户端连接时使用的路径时ws,而不是http, 并且路径还要带上socketio.io

服务端
from fastapi import FastAPI
from fastapi_socketio import SocketManager

app = FastAPI()

# 重点,使用默认配置
socket_manager = SocketManager(app=app)

@app.get("/")
async def index():
    return {"message": "Hello World"}

@socket_manager.on("connect")
async def connect(sid, environ):
    print(f"Client {sid} connected")

@socket_manager.on("message")
async def message(sid, data):
    print(f"Received message from {sid}: {data}")
    await socket_manager.emit("response", {"data": "Message received"}, room=sid)

@socket_manager.on("disconnect")
async def disconnect(sid):
    print(f"Client {sid} disconnected")


if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

vue

mounted() {
    this.socket = io('ws://127.0.0.1:8000', {
        transports: ['websocket'],
        path: '/ws/socket.io'
      });
     
    this.socket.on('connect', () => {
      console.log('Connected to server');
    });
    this.socket.on('response', (data) => {
      console.log('Received response:', data);
    });
  },
  methods: {
    sendMessage() {
      console.log('Sending message');
      this.socket.emit('message', { data: 'Hello from Vue' });
    },
  },

http://www.kler.cn/a/387912.html

相关文章:

  • TCP/IP协议,TCP和UDP区别
  • Springboot 日志处理(非常详细)
  • 基于非时空的离身与反身智能
  • 重构代码之内联临时变量
  • const限定符-C语言中指针的“可变与不可变”法则
  • RS®SZM 倍频器
  • prompt资料收集
  • 网络编程示例之网络基础知识
  • PVE纵览-备份与快照指南
  • uniapp+vue加油服务系统 微信小程序
  • 在一个项目的完整开发中,会涉及到多个 Git 命令
  • kafka面试夺命30问
  • 6:arm condition code flags详细的讲解
  • P5019 [NOIP2018 提高组] 铺设道路
  • volta多版本node管理工具
  • 「Mac畅玩鸿蒙与硬件30」UI互动应用篇7 - 简易计步器
  • 共享汽车管理:SpringBoot技术实现指南
  • ubuntu 22.04 如何调整进程启动后能打开的文件数限制
  • 基于Spring Boot+Vue的养老院管理系统【原创】
  • ElasticSearch备考 -- 集群配置常见问题
  • FPN(Feature Pyramid Network)
  • pytorch3d报错:RuntimeError: Not compiled with GPU support.
  • 后台管理系统窗体程序:文章管理 > 文章列表
  • ChatGPT键盘快捷键(按ctrl + /呼出)
  • JavaSE:运算符 (学习笔记)
  • LeetCode热题100之贪心算法