繁体   English   中英

如何在v> 1.4.0上的socket.io /lib/client.js文件中获取“接收器”套接字对象?

[英]How to get “receiver” socket object in socket.io /lib/client.js file on v > 1.4.0?

我已经在版本1.3.7的node_modules/socket.io/lib/client.js下的socket.io文件中建立了拦截调用(至少我是这样认为的,但是由于其他要求,我必须更新到1.4.5) 。 这些更改允许欺骗信息来自发送者套接字,并且在继续将数据发送到接收者套接字之前已经完成了这些更改。

之前(大约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,我能够毫不费力地为套接字对象提供属性(例如:socket.some-property = 1;在由nodejs在服务器根目录下运行的.js文件中),后来又可以得到some-property每当接收者收到一些数据包时, some-property返回到node_modules / client.js中,这样我可以截获该调用,但是现在它不起作用了,我希望将旧代码应用于此新上下文,以使它们再次起作用。

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];
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM