Привет! Начал делать первое приложение на Метеоре. Сразу решил выйти за грани обычных сайтов-визиток.
На серверной части лежит некое подобие демона - код, который должен крутиться постоянно и что-то делать (например, получать сообщения от VK API через long polling).
При попытках совершить HTTP.post у меня вываливается ошибка, мол Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
Прогуглил, ничего толкового не нашел (и да, я видел SO).
Подскажите, где почитать про асинхронный код на сервере или верный путь написания подобного.
this.World = function() {
this.vk = new VK({ appId: 777, mode: 'oauth' });
this.vk.token = '#token';
this.viewFriends(5);
this.listenMessages();
};
this.World.prototype = {
viewFriends: function(time) {
var vk = this.vk;
setInterval(function() {
var list = vk.request('friends.getRequests', { extended: 0 }, function(data) {
data.response.forEach(function(id) {
vk.request('friends.add', { user_id: id }, function() {
vk.request('messages.send', {
user_id: id,
message: 'Привет, новый друг!'
}, function(res) {
console.log(res);
})
});
});
})
}, 1000 * 60 * time);
},
listenMessages: function() {
var vk = this.vk;
vk.request('messages.getLongPollServer', {}, function (data) {
data = data.response;
var url = ['http://', data.server, '?act=a_check&key=', data.key, '&ts=', data.ts, '&wait=25&mode=2']
HTTP.post(url.join(''), Meteor.bindEnvironment(function(err, data) {
console.log(123);
}));
});
}
}