首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Restapi与Websockets的结合

Restapi与Websockets的结合
EN

Stack Overflow用户
提问于 2022-11-15 18:33:10
回答 1查看 14关注 0票数 0

我有一个rest服务器,它调用一些其他的Apis,我正在访问从服务器获得的数据,在一个react前端,但是对于某些应用程序,我需要从后台获取实时数据,有什么方法可以一起这样做吗,下面是我的代码

代码语言:javascript
复制
from flask import Flask,request
from flask_cors import CORS
from tuya_connector import TuyaOpenAPI, TUYA_LOGGER

app = Flask(__name__)
CORS(app)
@app.get("/api/device/<string:deviceid>")

def getdata(deviceid):
    ACCESS_ID = ""
    ACCESS_KEY = ""
    API_ENDPOINT = ""

    # Enable debug log

    # Init OpenAPI and connect
    openapi = TuyaOpenAPI(API_ENDPOINT, ACCESS_ID, ACCESS_KEY)
    openapi.connect()

    # Set up device_id
    DEVICE_ID = deviceid

    # Call APIs from Tuya
    # Get the device information
    response = openapi.get("/v1.0/devices/{}".format(DEVICE_ID))
    return response

我希望有传统的请求响应服务和实时数据获取。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 12:57:33

Websockets端点正是您所要寻找的。如果这还不算太晚,我建议切换到FastAPI,它“本地”地支持WebSockets (开箱即用)- https://fastapi.tiangolo.com/advanced/websockets

如果您需要继续使用WebSockets,有几个包允许您添加https://flask-sock.readthedocs.io/en/latest/端点

对于FastAPI,这很简单:

代码语言:javascript
复制
@app.get("/")
async def get():
    return {"msg": "This is a regular HTTP endpoint"}


@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message text was: {data}")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74450622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档