检测何时使用ember

时间:2019-02-14 01:15:09

标签: javascript ember.js socket.io

我正在将ember与socket.io配合使用,并且我希望计算属性可以更改为连接或断开套接字io连接。

我正在使用ember-websockets,这是我尝试过的:

socketIOService: service('socket-io'),
socketRoute:     'http://localhost:8080/',

connected: computed('socketIOService',
function()
{
    console.log('changed!');
    //return (this.get('socketIOService').socketFor(this.get('socketRoute').socket.connected));
}),

startConnection()
{
    this.get('connected');
    const socket = this.socketIOService.socketFor(this.get('socketRoute'));

    socket.on('initialised', this.initialised, this);
},

所以这不起作用,因为我猜测服务不会更改。我希望能够从以下计算机中获取值...

this.socketIOService.socketFor(this.get('socketRoute'));

但是我无法在计算属性中获得sockerFor属性。

1 个答案:

答案 0 :(得分:0)

readme,我认为您可以使用带有共同计算属性的'open'和'close'事件:

startConnection()
{
    const socket = this.socketIOService.socketFor(this.get('socketRoute'));
    socket.on('open', () => { this.set('connected', true); });
    socket.on('close', () => { this.set('connected', false); });
}