如何解决如何使用Python将媒体流从SocketSever传输到Falcon API
我正在开发一个小型python服务器,旨在将MP4流作为套接字服务器接收,我想将数据传输到另一个与Falcon进行GET请求连接的客户端。
这是我的API服务器,用于发送媒体:
class StreamResource:
def on_get(self,req,resp):
#Throw error rfile is not defined
resp.stream = hlserver.socket_list[0].rfile.iter_content(io.DEFAULT_BUFFER_SIZE)
app = falcon.API()
app.add_route('/livestream.mp4',StreamResource())
class MyTCPHandler(socketserver.StreamRequestHandler):
def setup(self):
print(self.client_address[0],' connected')
socket_list.append(self)
def handle(self):
#Have to keep this to prevent client to be disconnected
self.data = self.request.recv(1024).strip()
def finish(self):
print(self.client_address[0],' disconnected')
socket_list.remove(self)
class ThreadedSocketServer(object):
def __init__(self,interval=1):
self.interval = interval
thread = threading.Thread(target=self.run,args=())
thread.daemon = True # Daemonize thread
thread.start() # Start the execution
def run(self):
HOST,PORT = "localhost",8001
# Create the server,binding to localhost on port 9999
server = socketserver.Tcpserver((HOST,PORT),MyTCPHandler)
# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
server.serve_forever()
所以我的主要目标是将数据从MyTCPHandler.handle传输到StreamResource.on_get。
- 我不知道什么是最好的方法。是否可以传递流引用,还是应该将字节块复制到缓冲区或其他任何内容中?
- 我尝试在StreamRequestHandler上使用socketserver documentation中的示例。他们正在使用rfile属性,但是当我执行同样的操作时,我有了
AttributeError: 'MyTCPHandler' object has no attribute 'rfile'
- 如果我将MyTCPHandler.handle方法设置为空,则每次连接后我都会立即断开客户端连接
感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。