开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 705|回复: 5
收起左侧

[已解决] WebSocket的问题,请教一下大神

 关闭 [复制链接]
结帖率:89% (16/18)
发表于 2024-7-9 21:10:53 | 显示全部楼层 |阅读模式   湖北省襄阳市
9精币
python用fastapi搭创建了一个WebSocket服务器
但是我找遍论坛所有的模块,都不行,不知道是哪出的问题,大神帮看一下


[Python] 纯文本查看 复制代码
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from pydantic import BaseModel
import asyncio
import websockets
import gzip
import random
import re
import string
import requests
from protobuf.douyin import *

app = FastAPI()


class LiveIdRequest(BaseModel):
    live_id: str


class ConnectionManager:
    def __init__(self):
        self.active_connections: list[WebSocket] = []

    async def connect(self, websocket: WebSocket):
        await websocket.accept()
        self.active_connections.append(websocket)

    def disconnect(self, websocket: WebSocket):
        self.active_connections.remove(websocket)

    async def send_personal_message(self, message: str, websocket: WebSocket):
        await websocket.send_text(message)

    async def broadcast(self, message: str):
        for connection in self.active_connections:
            await connection.send_text(message)


manager = ConnectionManager()


@app.post("/start_live")
async def start_live(request: LiveIdRequest):
    live_id = request.live_id
    fetcher = DouyinLiveWebFetcher(live_id)
    asyncio.create_task(fetcher.start(manager))
    return {"message": "Live stream started"}


@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await manager.connect(websocket)
    try:
        while True:
            data = await websocket.receive_text()
            await manager.send_personal_message(f"Message text was: {data}", websocket)
    except WebSocketDisconnect:
        manager.disconnect(websocket)


class DouyinLiveWebFetcher:
    def __init__(self, live_id):
        self.live_id = live_id
        self.messages = []
        self.__ttwid = None
        self.__room_id = None
        self.live_url = "https://live.douyin.com/"
        self.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

    async def start(self, manager: ConnectionManager):
        await self._connectWebSocket(manager)

    async def _connectWebSocket(self, manager: Connection



补充内容 (2024-7-9 21:12):
集_WSID = 客户Duan_连接 (“ws://localhost:8000/ws”, , , )
调试出来:集_WSID=1
然后立马就WS断开时间(上图有调试信息)


补充内容 (2024-7-9 21:15):
我用在线网页上的WS连接,都是可以的,就是易语言不行,不知道是不是python创建的时候哪些参数没搞好

99999999999999999.e

2.06 MB, 下载次数: 1

210437.png
VX截图_20240709210341.png

最佳答案

查看完整内容

你都用py 直连了 何必再中转一道呢,或者直接用易语言的连接 之前论坛有开源的

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (9/9)
发表于 2024-7-9 21:10:54 | 显示全部楼层   安徽省宿州市
你都用py 直连了 何必再中转一道呢,或者直接用易语言的连接 之前论坛有开源的
回复

使用道具 举报

结帖率:89% (16/18)

签到天数: 1 天

 楼主| 发表于 2024-7-10 08:51:25 | 显示全部楼层   湖北省襄阳市
zzdd2215415 发表于 2024-7-9 21:35
你都用py 直连了 何必再中转一道呢,或者直接用易语言的连接 之前论坛有开源的 ...

我是用的py抓的数据,想弄到易语言上调用
回复

使用道具 举报

结帖率:100% (9/9)
发表于 2024-7-10 19:54:33 | 显示全部楼层   安徽省宿州市
fx82608171 发表于 2024-7-10 08:51
我是用的py抓的数据,想弄到易语言上调用

那不如换个思路,易语言开个服务端,你py的数据走上传
回复

使用道具 举报

发表于 2024-7-31 16:38:56 | 显示全部楼层   湖南省衡阳市
不错不错,,加油
回复

使用道具 举报

发表于 2024-8-4 04:59:11 | 显示全部楼层   安徽省合肥市
学习了学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表