我正在将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属性。
答案 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); });
}