Коллекция метеорных вставок в обратном вызове сервера не работает
По сути, я пытаюсь получить wss-ленту от Poloniex и обновлять коллекцию, чтобы иметь возможность иметь "последние" цены в коллекции (я буду обновлять и перезаписывать существующие записи) и показывать ее на веб-странице. На данный момент у меня работает wss, и я просто пытаюсь вставить некоторые данные в коллекцию, чтобы увидеть, работает ли она, но это не так, и я не могу понять, почему!
Примечание: коллекция работает, я вручную вставил запись с оболочкой.
Вот код, который я сейчас имею:
import { Meteor } from 'meteor/meteor';
import * as autobahn from "autobahn";
import { Mongo } from 'meteor/mongo'
import { SimpleSchema } from 'meteor/aldeed:simple-schema'
//quick DB
Maindb = new Mongo.Collection('maindb');
Maindb.schema = new SimpleSchema({
place: {type: String},
pair: {type: String},
last: {type: Number, defaultValue: 0}
});
Meteor.startup(() => {
var wsuri = "wss://api.poloniex.com";
var Connection = new autobahn.Connection({
url: wsuri,
realm: "realm1"
});
Connection.onopen = function(session)
{
function tickerEvent (args,kwargs) {
console.log(args[0]);
Maindb.insert({place: 'Poloniex', pair: args[0]});
}
session.subscribe('ticker', tickerEvent);
Connection.onclose = function () {
console.log("Websocket connection closed");
}
}
Connection.open();
});
Консоль записывает ленту новостей, но вставка не работает. Я посмотрел в Интернете, и он сказал, что, чтобы получить вставку для работы, когда в функции "не Метеор", вы должны использовать Meteor.bindEnvironment
что я и сделал:
Я изменился
function tickerEvent (args,kwargs) {
console.log(args[0]);
Maindb.insert({place: 'Poloniex', pair: args[0]});
}
который стал
var tickerEvent = Meteor.bindEnvironment(function(args,kwargs) {
console.log(args[0]);
Maindb.insert({place: 'Poloniex', pair: args[0]});
}); tickerEvent();
Который ничего не делает - даже не печатает канал на моей консоли. Используя эту же структуру, но просто удаляя Meteor.bindEnvironment
снова печатает на консоль, но не обновляет.
Я делаю что-то неправильно?