Веб-сокеты Meteor Server

Я хочу создать веб-сокет на сервере Meteor (не на клиенте) для подключения к внешнему сайту. Я знаю URL-адрес, который я собираюсь нажать, а также какие данные ожидать, но мне неясно, как именно создать сам веб-сокет. Все поиски, которые я делаю, дают мне решения для клиента, но мне еще предстоит столкнуться с чем-то, что служит серверным решением.

Есть ли что-то, что я пропустил, что соответствует этой цели? Atmosherejs.com ничего не перечисляет, и поиск в google/github тоже ничего не дал. Есть ли что-то встроенное в Meteor, которое уже выполняет это?


person Sinistralis    schedule 03.11.2014    source источник
comment
Возможно, просто используйте пакет npm, веб-сокет?   -  person Dan Dascalescu    schedule 03.11.2014
comment
Я не знал, что Meteor может использовать пакеты NPM. Нужен ли мне по-прежнему внешний пакет для их использования или теперь поддержка встроена в новый менеджер пакетов?   -  person Sinistralis    schedule 04.11.2014
comment
Вы можете использовать модули npm непосредственно в пакетах. приложение в пакеты.   -  person Dan Dascalescu    schedule 04.11.2014
comment
У вас есть хороший ресурс для этого? Я смотрю на github.com/oortcloud/unofficial-meteor-faq большую мои вопросы, но я действительно не понимаю, куда вписывается файл package.js.   -  person Sinistralis    schedule 04.11.2014
comment
Использование пакетов рассказывает об организации приложения в пакеты. Вы можете просмотреть некоторые существующие пакеты, чтобы посмотреть, как они используют Npm; на самом деле всего несколько строк.   -  person Dan Dascalescu    schedule 04.11.2014


Ответы (1)


Следующий код предназначен для открытия сокета в Meteor через порт 3003. Он преобразует данные из сокета (отправленные от клиента) в JSON-объект. Это означает, что следующий код представляет собой сокет, который получает JSON.

Fiber = Npm.require('fibers')

// server
Npm.require('net').createServer(function (socket) {
    console.log("connected");

    socket.on('data', function (data) {

        socket.write("hello!");

        var o = JSON.parse(data.toString());
        console.log(o);


        Fiber(function() { 
            console.log('Meteor code is executing');
            //=> Meteor code
        }).run();
        //console.log(data.toString());
        //socket.close();
    });
})

.listen(3003);
person Kevin    schedule 16.03.2016