WebSocket
アプリケーションをsocketio
で書いています。私が実装できる2つのソケットイベントは、接続時とメッセージ時にあります。最初のものはパラメータ(クライアント)としてソケットを受け取り、2番目はクライアントから送信されたデータを受け取ります。だから私はそれにメッセージイベント上でソケット変数を使用するには、この方法を記述することができます。より広い範囲からJavascript変数を使用する方法
WebSocketNoaListener.onClientConnect = function(socket){
var soc = socket;
socket.on("message", function(msg){
console.log("i can use message: "+msg);
console.log("and the socket: "+soc.id);
});
socket.on("disconnect", WebSocketNoaListener.onClientDisconnect);
}
が、私は読みやすくするための私の機能を分離したい:
WebSocketNoaListener.onClientConnect = function(socket){
var soc = socket;
socket.on("message", WebSocketNoaListener.onClientMessage);
socket.on("disconnect", WebSocketNoaListener.onClientDisconnect);
}
WebSocketNoaListener.onClientMessage = function(){...
私はsoc
変数を使用する必要がありますsocket
を受け取る関数の外側のスコープ内にあります。それは可能ですか?
「アウトスコープ」とはどういう意味ですか? – JaredPar
@JaredPar私は上記の場合、あなたが正しい原因であることがわかりましたが、グローバルソケット変数は、イベントに属する正しいソケットインスタンスを指し示すことはありません。 "Outerscope" – dlamblin