ストロフィと参加している部屋ごとにオブジェクトがあります。このオブジェクトには、この特定のルームのプレゼンス スタンザを処理する関数が含まれています。
function Room(name, someData)
this.name = name;
this.someData = someData;
this.presenceHandler = function(presence) {
console.log(this.name, this.someData);
}
this.join = function() {
connection.addHandler(this.presenceHandler,null,"presence",null,null,this.name);
connection.send(/*presence*/);
}
}
var connection = new Strophe.Connection(/*http-bind*/);
var mainRoom = new Room("main", {foo: "bar"});
mainRoom.join();
しかし、mainRoom.presenceHandler()
関数が Strophe によってスタンザによって呼び出されるとthis
、関数内でスタンザ自体が参照され、mainRoom
もはや参照されないため、mainRoom
.
プレゼンス ハンドラ関数内からルーム オブジェクトの属性にアクセスする方法を教えてください。