subscriptions: {
socketGetMessage({ dispatch }) {
return getMessage(data => {
const datajson = JSON.parse(data);
dispatch({
type: "notice/fetch_mqtt_add",
payload: datajson
});
});
}
}
subscriptions里的方法在app.start()的时候就执行了
let client;
export async function getMessage(action) {client = connect(mqttUrl, {
clientId: terminalUid,
...mqttSetting // 获取用户配置
});
client.on("connect", () => {
console.log("连接:" + client.connected);
});
client.on("message", (topic, message, packet) => {
action(message.toString());
});
}
但是建立socket链接的时候需要的的用户配置参数要额外异步请求一个接口拿到
而subscriptions在dom ready的时候就执行了
有没有什么好的法子能获取到用户setting参数以后再发起socket连接呢
在
subscriptions
中打开一个websocket
.然后在
websocket
的onmessage
中触发一个effects
就可以了。