передача экземпляра socket.io в жуткий - PullRequest
0 голосов
/ 25 июня 2018

в моем коде у меня есть сервер socket.io, и мне нужно, чтобы клиенты отправляли сигнал на сервер, а потом начинал жуткий ... после запуска жуткий, мне нужно отправлять туда и обратно некоторые данные с сервера на клиент через io, поэтому мне нужноЭкземпляр socket.io внутри жуткого

вот упрощенная версия моего кода

var http = require('http');
var socket  = require('socket.io');
const express = require('express');
app = express();

try {
    var Spooky = require('spooky');
} catch (e) {
    var Spooky = require('../lib/spooky');
}



var server = http.createServer(app).listen(1300);
 var io  = socket.listen(server);

io.on('connection' , function(socket){

    socket.on('start_spooky' , function (data) {
        io.emit('push_msg' , {text : 'starting spooky ....  '  });
        run_spooky(io);
    })

});



function run_spooky(io){

    var spooky = new Spooky({
        child: {
            transport: 'http'
        },
        casper: {
            logLevel: 'debug',
            verbose: true
        }
    }, function (err) {
        if (err) {
            e = new Error('Failed to initialize SpookyJS');
            e.details = err;
            throw e;
        }
        spooky.start( 'http://localhost');

        spooky.then([{
            io: io
        }, function () {
            io.emit('push_msg' , {text : 'web page is loaded ...  ' });
        }]);

        spooky.run();
    });



}

, очевидно, это не будет работать с экземпляром io

    spooky.then([{
        io: io
    }, function () {
        io.emit('push_msg' , {text : 'web page is loaded ...  ' });
    }]);

, и я получаю ошибку

Не удалось сериализовать запрос в JSON

как мне заставить это работать?

...