Ember.js - 通过 Websocket 流更新模型
Ember.js - Updating a model via Websocket Stream
我想通过 websocket 流更新我的市场模型。
我有一个有很多市场的平台模型。
当用户第一次请求模型时,它是从后端数据库中检索的。然后我想更新 websocket 数据。
如何更新模型中的不同值?我不知道如何按市场名称过滤 hasmany 关系然后设置值。也许有一种我没有看到的更简单的方法。
实际上非常简单 - 只需确保您设置了以下内容:
- 您希望您的 websocket 将 json 数据发送到 ember,使用与 json 相同的格式(例如 json:ap)
- 当您在 ember 端建立 websocket 连接时,您需要一个事件处理程序来处理收到的消息。
- 该事件处理程序将使用
store.pushPayload
到 add/update 商店中的模型(这意味着您的 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;
}
我想通过 websocket 流更新我的市场模型。
我有一个有很多市场的平台模型。
当用户第一次请求模型时,它是从后端数据库中检索的。然后我想更新 websocket 数据。
如何更新模型中的不同值?我不知道如何按市场名称过滤 hasmany 关系然后设置值。也许有一种我没有看到的更简单的方法。
实际上非常简单 - 只需确保您设置了以下内容:
- 您希望您的 websocket 将 json 数据发送到 ember,使用与 json 相同的格式(例如 json:ap)
- 当您在 ember 端建立 websocket 连接时,您需要一个事件处理程序来处理收到的消息。
- 该事件处理程序将使用
store.pushPayload
到 add/update 商店中的模型(这意味着您的 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;
}