0
私はwebSocketをリッスンするためのeventChannelを持っていますが、これは問題ありません。特定のアクションが発生したときにeventChannelを閉じる方法
また、アクションUSER_LOGGED_OUT
を聞き、チャンネルを閉じたいと思います。
ソケットエラーまたはソケットクローズの場合は、END
を発行してチャネル内からチャネルをクローズしていますが、これはどのように外部アクションに基づいて行いますか?
これは、チャネルループです:
これを自分自身に答えるexport function* websocketWatcher() {
const tokenResponse = yield take(RECEIVE_USER_TOKEN);
const accessToken = tokenResponse.payload.data.access_token;
const channel = yield call(createWebsocketChannel, accessToken);
try {
while (true) {
const action = yield take(channel);
yield put(action);
}
} finally {
console.log('Websocket channel terminated');
}
}