Как мы все знаем, евенты backbone.js делятся на две категории:
- Изменение информации в моделях/коллекциях
- Евенты DOM — дерева
Недавно, мне необходимо было решить задачу подключения евентов socket.io к backbone, да так, что бы все было внутри приложения backbone, что бы евенты сокетов можно было объявить прямо во вьюхах и там же описать все действия, которые будут происходить по евенту.
Дабы не отступать от стиля backbone, хотелось реализовать возможность добавить событие socket.io так же, как событие DOM — дерева, а именно вот так:
var im = Backbone.View.extend({
io_events: {
'new_message': 'newMessage'
},
newMessage: function(message_data){
//do something
}
});
Долгие поиски по просторам интернета меня привели к подборке менее элегантных методов связки backbon'а и сокетов, которые, вроде, и решали задачу, но не так, как хотелось бы. Пришлось думать самому.
Читать дальше →