如何在 boost beast websocket 中传递模型类型

How do I pass the model type in boost beast websocket

我正在使用 c++11、beast 库和 IBM speech to text web 服务。

执行握手时,websocket 接口(连接)需要 authentication token 作为请求 header。

参考 Watson 文档中可用的 this code,看起来我也必须将模型类型(如果我想)作为请求 header

var IAM_access_token = '{access_token}';
var wsURI = 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize'
     + '?access_token=' + IAM_access_token
     + '&model=es-ES_BroadbandModel';
var websocket = new WebSocket(wsURI);

还有一个curl request format提到设置"model"

curl -X POST -u "apikey:{apikey}"
--header "Content-Type: audio/flac"
--data-binary @{path}audio-file.flac
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel"

谁能帮我弄清楚如何在我的 websocket 中传递 "model"(在 c++11 中使用 beast)?

这是我传递身份验证令牌的方式:

mWebSocket.async_handshake_ex(mHost, "/speech-to-text/api/v1/recognize",
        [mToken](request_type& reqHead) {
            reqHead.insert(http::field::authorization,mToken);},
        bind(&IbmWebsocketSession::send_start, shared_from_this(), placeholders::_1));

正如@ALanBirtles 所建议的那样

将所需的 model 放入 url 作为

    mWebSocket.async_handshake_ex(mHost, "/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel",...

有效