我希望通过websocket流更新我的市场模型。
我有一个拥有众多市场的平台模型。
当用户首次请求模型时,将从后端数据库中检索它。然后我想用websocket数据更新。
如何更新模型中的不同值?我无法弄清楚如何按市场名称过滤hasmany关系然后设置值。也许有一种更简单的方式去做,我没有看到。
答案 0 :(得分:0)
实际上非常简单 - 只需确保安装好这些东西:
store.pushPayload
在商店中添加/更新模型(这意味着您的websocket代码需要访问商店)。 一个例子:
// some controller.js
import Controller from '@ember/controller';
import { action } from 'ember-decorators/object';
import myAwesomeWebSocketStuff from 'lib/websocket';
export default class extends Controller {
init() {
const socket = myAwesomeWebSocketStuff(this.store);
this.set('socket', socket');
}
willDestroy() {
this.get('socket').disconnect();
}
}
然后在lib/websocket.js
import SomeWebSocketLibrary from 'some-library';
export default function(store) {
const socket = new SomeWebSocketLibrary(url);
socket.connect();
socket.on('receive', data => store.pushPayload(data));
return socket;
}