您可以按照以下步骤解决API网关Web-socket路由选择不起作用的问题:
确保您在API网关的WebSocket升级路由中正确配置了多个集成端点。对于每个集成端点,确保使用唯一路径的注册表。
检查中集成请求模板和响应模板是否正确设置。如果您使用Lambda集成,则在请求和响应模板中设置的任何标头和正文将传递给Lambda函数。
检查路径参数模板是否正确设置。使用路径参数模板可以将路由路径(例如,/ chat / {room})中发现的参数提取为Lambda集成的输入参数。
以下是WebSocket API Gateway的代码示例供您参考:
# 在Python Flask 应用中创建 Web Socket 连接
from flask_socketio import SocketIO
from flask import Flask, request
app = Flask(__name__)
socketio = SocketIO(app)
# 在API Gateway内部使用Serverless WebSockets作为集成端点
@socketio.on('connect')
def on_connect():
print('Websocket connected')
# 获取传入的API WebSocket事件的路径参数
room = request.args.get('room')
# 如果路径参数正确传递,可以将路径参数传递给后续的集成处理
# 在API网关创建WebSocket路由选择规则
websocket_routes = {
'/chat/': lambda request: request['context']['room']
}
如果您按照上面列出的步骤进行操作,则应该可以解决API网关Web-socket路由选择不起作用的问题。
上一篇:API网关外部请求的授权
下一篇:api网关web服务器