我正在使用bot framework-webchat 0.12.0版本的React App。我正在使用自定义botconnection初始化Chat组件,从而创建一个反向通道机制。
有谁知道如何取消订阅/销毁反向频道中的所有机器人活动?
当我检查网络选项卡时,似乎当我使用react路由器导航到包含webchat组件的视图时,每次都会初始化WebSocket连接,即使在卸载组件后它仍保持打开状态(导航) 。 我担心这些Web套接字连接如果不被删除就可能成为问题。
以下是我在React组件中所做的事情:
import { Chat, DirectLine } from 'botframework-webchat';
...
componentDidMount() {
const { user, token } = this.props;
if (token && user && Object.keys(user).length !== 0) {
this.botConnection = new DirectLine({
secret: configs.bot.secret_key,
webSocket: 'true'
});
this.initBot();
}
}
initBot = () => {
const { token, user } = this.props;
this.botConnection.postActivity({
type: 'event',
value: {
accessToken: token,
context: 'user'
},
from: {
id: user.userName
},
name: 'conversationInfo'
}).subscribe(() => {
this.setState({ renderChatBot: true });
});
}
...
render() {
const { token, user } = this.props;
if (token !== '' && this.state.renderChatBot) {
console.log('BOTCHAT RENDER');
return (
<Chat
bot={{ id: configs.botId }}
botConnection={this.botConnection}
user={{ id: user.userName }}
token={token}
resize="detect"
/>
);
}
return null;
}
我花了几个小时搜索文档并通过文件读取文件,当webchat组件卸载时,我似乎无法找到销毁这些Web套接字连接的方法。
非常感谢任何帮助。