【发布时间】:2018-08-14 15:12:34
【问题描述】:
我正在尝试弄清楚如何使用 MicroSoft 机器人 Directline 通信。我可以很好地连接,使用 POST 和 GET 发送和接收消息。我的问题是尝试使用 WebSockets 时。我开始对话,取回我的 conversationId 和 streamUrl,我使用 streamUrl 创建了一个新的 WS,并且我的机器人定期 ping,证明我已连接。使用 we.Send() 不会引发错误,但我没有得到响应。有人知道下一步吗?提前致谢。
function StartConversation(params) {
fetch('https://directline.botframework.com/v3/directline/conversations', {
method: "POST", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, cors, *same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
credentials: "same-origin", // include, same-origin, *omit
headers: {
"Authorization": `Bearer ${BearerToken}`,
"Content-Type": "application/json; charset=utf-8"
},
redirect: "follow", // manual, *follow, error
referrer: "no-referrer", // no-referrer, *client
})
.then(response => response.text())
.then(function (params) {
localStorage.setItem(storageKey, params);
ConnectWebSocet();
})
.catch(error => console.error(`Fetch Error =\n`, error));
}
function ConnectWebSocet() {
var token = GetBotToken();
ws = new WebSocket(token.streamUrl);
ws.onopen = function (v, e) {
console.log('open', v);
};
ws.onmessage = function (evt) {
console.log(evt);
};
}
【问题讨论】:
-
我不认为你应该在使用 WebSockets 发送消息后得到任何响应(虽然我可能是错的)。顺便说一句,您在发送消息后期待什么?
-
嗨@Meloy,有什么更新吗?如果您在开始对话后发送一些消息,是否可以通过 WebSocket 流接收消息?
-
抱歉,我已经转向了不同的策略。我想在发送另一个电话后需要接收新消息。我还是新手,感谢所有帮助。