0

当我们在jquery中调用ajax时,我们可以这样写:

$.ajax({
    url: 'http://localhost/url',
    type: 'GET',
    dataType: "json",          
    data: {name : "data"},
    beforeSend : function(){
    ...
    },
    success:function(data)
    {
    ...
    },  
    error : function(){
    ...
    }
}
});

这个声明模板/样式是否也可以应用于Socket.IO中的套接字事件处理?

我们可以做类似的事情:

var socket = io.connect( );

socket.on({
    'connect' : function(){
     ...
     },
    'error' : function(){
    ...
    },
    'my custom event' : function(){
    ...
    }
}

)

谢谢!

4

1 回答 1

0

在 socket.io 文档中,他们展示了您可以使用调用链来做到这一点:

socket.on(...)
      .on(...)
      .on(...)

如果你真的不想要它,你可以简单地编写一个包装它的模块:

yourNameSpace.Socket = (function(){
    var socket = null;

    this.config = function(){
        socket = io.connect("...");
    };

    this.on = function(events){
        for(var ev in events){
            if(typeof events == 'object' && events.hasOwnProperty(ev)){
                socket.on(ev, events[ev]);
            }
        }
    };

    this.getSocket = function(){
        return socket;
    };

    return this;
})();

请注意,这不是构造函数,而是模块。它的行为是单例的,因此如果您想要多个套接字连接,只需将其转换为构造函数即可。:)

于 2014-11-17T13:03:29.287 回答