首页 > 解决方案 > Django 抛出 ConnectionAbortedError: [WinError 10053] 已建立的连接被主机中的软件中止

问题描述

如果我的问题看起来晦涩难懂,请提前道歉。这是当我尝试在我的 React 主页中提供多个 Django 媒体(视频)URL 时 Django 抛出的错误。这是堆栈跟踪:

    Exception happened during processing of request from ('127.0.0.1', 5511)
  File "D:\Django\myproject\app\env\lib\site-packages\django\core\servers\basehttp.py", line 174, in handle
    self.handle_one_request()
Traceback (most recent call last):
  File "C:\Users\Anshul\AppData\Local\Programs\Python\Python38\lib\socketserver.py", line 650, in process_request_thread
    self.finish_request(request, client_address)
  File "D:\Django\myproject\app\env\lib\site-packages\django\core\servers\basehttp.py", line 182, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "C:\Users\Anshul\AppData\Local\Programs\Python\Python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "C:\Users\Anshul\AppData\Local\Programs\Python\Python38\lib\socketserver.py", line 360, in finish_request
    self.RequestHandlerClass(request, client_address, self)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
----------------------------------------
  File "C:\Users\Anshul\AppData\Local\Programs\Python\Python38\lib\socketserver.py", line 720, in __init__
    self.handle()
  File "D:\Django\myproject\app\env\lib\site-packages\django\core\servers\basehttp.py", line 174, in handle
    self.handle_one_request()
  File "D:\Django\myproject\app\env\lib\site-packages\django\core\servers\basehttp.py", line 182, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "C:\Users\Anshul\AppData\Local\Programs\Python\Python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

这是反应片段:

<video 
 preload="metadata"
 id={this.props.id} 
 muted
 ref={this.videoRef}
 onClick={this.play.bind(this,1,this.props.id)} 
 onTimeUpdate={this.updateTime.bind(this,this.props.id)} 
 onCanPlay={this.getReady.bind(this,this.props.id)}> 
       <source src={this.props.source} type="video/mp4"/>
 </video>

其中视频源是指由 drf serializer.Eg 提供的 django 媒体 url

this.props.source = 'http://localhost:8000/media/buck_bunny.mp4'

主页包含多个视频。媒体 URL 是通过 API 调用获取的。它是一个内容提要页面。当用户向下滚动主页一定量时,会进行后续 API 调用以获取媒体 URL。这就是问题出现的地方。如果用户向下滚动的速度非常快,那么 API 调用也会很快执行,从而导致此错误。

标签: djangoreactjsapiwebsocketdjango-rest-framework

解决方案


推荐阅读