我正在尝试WebRTC使用socket.io.
信令服务器是用 python 编写的,如下所示。
import socketio
import uvicorn
from starlette.applications import Starlette
ROOM = 'room'
sio = socketio.AsyncServer(async_mode='asgi', cors_allowed_origins='*')
star_app = Starlette(debug=True)
app = socketio.ASGIApp(sio, star_app)
@sio.event
async def connect(sid, environ):
await sio.emit('ready', room=ROOM, skip_sid=sid)
sio.enter_room(sid, ROOM)
@sio.event
async def data(sid, data):
await sio.emit('data', data, room=ROOM, skip_sid=sid)
@sio.event
async def disconnect(sid):
sio.leave_room(sid, ROOM)
if __name__ == '__main__':
uvicorn.run(app, host='0.0.0.0', port=8003)
Run Code Online (Sandbox Code Playgroud)
客户端看起来像这样
<script>
const SIGNALING_SERVER_URL = 'http://127.0.0.1:8003?session_id=1';
// WebRTC config: you don't have …Run Code Online (Sandbox Code Playgroud) 该项目使用了招摇。有以下代码。
@swagger_auto_schema(
manual_parameters=[
Parameter('download', IN_QUERY,
'Set `Content-Disposition=attachment` to make browser to download file'
'instead of showing it.',
type='bool'),
Parameter('share_id', IN_PATH, type='uuid')
],
security=[],
responses={'400': 'Validation Error (e.g. base64 is wrong)',
'200': VideoSerializer}
)
Run Code Online (Sandbox Code Playgroud)
请解释每个论点的责任。我阅读了文档,但了解的很少......特别感兴趣'200': VideoSerializer
我是rest用 Flask写的flask-marshmallow
模型.py
class Application(db.Model):
__tablename__ = 'applications'
id = db.Column(db.String(), primary_key=True)
name = db.Column(db.String())
versions = db.relationship('Version', backref='application', lazy=True)
def __repr__(self):
return '<application {}>'.format(self.name)
class Version(db.Model):
__tablename__ = 'versions'
id = db.Column(db.String(), primary_key=True)
file = db.Column(db.String(80), nullable=True)
application_id = db.Column(db.Integer, db.ForeignKey('applications.id'))
Run Code Online (Sandbox Code Playgroud)
谢马斯.py
class ApplicationDetailSchema(ma.Schema):
class Meta:
fields = ('id', 'name', 'versions')
Run Code Online (Sandbox Code Playgroud)
路线.py
@bp.route("/<id>")
def application_detail(id):
application = Application.query.get(id)
result = application_detail_schema.dump(application)
return jsonify(result)
Run Code Online (Sandbox Code Playgroud)
类型错误:“版本”类型的对象不可 JSON 序列化
我执行此类请求:
curl http://127.0.0.1:8000/api/v1/landing?param1=1¶m2=2
结果,我只得到第一个参数。为什么会发生这种情况以及如何解决?