其实很简单-只要确保你有这些设置:
-
您希望您的websocket使用相同的json格式(例如json:ap)将json数据发送到ember
-
当您在事物的ember端建立websocket连接时,您需要一个事件处理程序来处理收到的消息。
-
事件处理程序将使用
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;
}