2016-08-06 5 views
0

node_modules/socket.io/lib/client.jsのバージョン1.3.7のsocket.ioファイルに傍受の呼び出しを作成しました(少なくとも私はそうだと思いますが、他の要件のために1.4.5に更新する必要があります)。これらの変更により、送信者ソケットから送信された偽装情報が許可され、受信者ソケットにデータを送信し続ける前に完了しました。v> 1.4.0でsocket.io /lib/client.jsファイルの "receiver"ソケットオブジェクトを取得する方法は?

(1.3.7周り)、メソッドは次のようれたパケットを送信する前に実行する前に:

Client.prototype.packet = function(packet, preEncoded, volatile){ 
var self = this; 
var sockets = this.sockets[0]; //this helds the socket object 

が、現在(1.4.5)socket.ioは、以下の

Client.prototype.packet = function(packet, opts){ 
var sockets = this.sockets[0]; //gives undefined 
への呼び出しを変更

特定のオブジェクト全体を見ようとしましたが、受信者ユーザーのソケットが見つかりませんでした。

1.3.7に戻って、ソケットオブジェクトにプロパティを簡単に与えることができました(例:server.some-property = 1; .jsファイル内でサーバのルートにあるnodejsによって実行されました)。受信者がパケットを受信したときにいつでもnode_modules/client.jsにこのsome-propertyを返すようにして、私はコールを傍受することができましたが、今は動作しません。そして、この新しいコンテキストに古いコードを適用して、 。

+0

独自のソケットオブジェクトを作成します。 –

+0

@TheMatrixISRealそれはどういう意味ですか、あなたはsocket.ioの動作が正しいことを理解していますか?私は単純にソケットオブジェクトを作成することはできませんが、それは全体のコンテキストで動作しないと仮定呼び出しを通過しない場合。 – Fane

答えて

0
var socketObject = {}; 
io.sockets.on('connection', function (client) { 
    socketObject[client.id] = {socket: client}; 
    client.on('data', function (somedata) { 
     socketObject[client.id].data = someData; 
    });  
    client.on('disconnect', function() { 
     delete socketObject[client.id]; 
    }); 
}); 
+0

それは、私がすでにやった仕事全体を完全に変える必要があります。それはたくさんあります。確かに、新しいバージョンのパケットを傍受し、それに応じてソケットオブジェクトへのアクセスでパケットを変更する方法が必要です。あなたはこれについて何か考えていますか? – Fane

+0

さらに、これは質問にも答えません。あなたのコードを使ってソケットで受信したパケットを傍受することはできません。 – Fane

関連する問題