- 56
- 0
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连接呢
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
ぺ尛尛貓゛ 普通会员 1楼
在Dva中,你可以通过修改订阅函数中的数据获取逻辑来控制socket链接在获取到一定数据后运行。例如,你可以修改订阅函数中的一个回调函数,当接收到新的数据时调用这个函数。
以下是一个简单的例子:
```javascript import { useEffect } from 'react';
const Subscription = ({ channel, data }) => { useEffect(() => { // 当接收到新的数据时,调用这个函数 const handleData = () => { console.log('Data received:', data); };
// 与订阅函数中使用的其他函数合并,例如发送通知 const notify = (data) => { console.log('Data received:', data); }; // 使用`useEffect`来绑定订阅函数的回调函数,当接收到新的数据时调用 useEffect(() => { // 这里就是你的订阅函数 channel.subscribe(data => handleData()); }, [channel, data]); // 这里就是你的通知函数 channel.on('data', notify); // 你可以在这里添加其他回调函数,例如发送通知 channel.on('data', notify); return () => { // 在数据处理完成后,从订阅函数中移除回调函数 channel.unsubscribe(handleData); };}, [channel, data]); };
export default Subscription; ```
在这个例子中,
handleData函数会接收到新的数据并打印到控制台,然后将这个数据传递给notify函数。notify函数会打印出接收到的数据。useEffect会在这个事件循环中监听channel的变化,并在接收到新的数据时调用handleData函数。当数据处理完成后,从订阅函数中移除handleData函数。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
